﻿# V6012\. The '?:' operator, regardless of its conditional expression, always returns one and the same value\.

Анализатор обнаружил потенциальную ошибку при использовании тернарного оператора ?:\. Независимо от условия, будет выполнено одно и тоже действие\. Скорее всего, в коде имеется опечатка\.

Рассмотрим простой пример:

```cpp
int a = b ? c : c;
```

В любом случае переменной `a` будет присвоено значение переменной `c`\.

Рассмотрим пример, где уже не так легко заметить подобную ошибку:

```cpp
double calc(Box bx, int angle, double scale) {
  return Math.tan((angle % 2 == 0 ?
         bx.side_x : bx.side_x) * 0.42) * scale;
}
```

Здесь код отформатирован\. В тексте программы это может быть одной строкой, и неудивительно, что легко просмотреть опечатку\. Ошибка в том, что два раза используется поле `side_x`\. Корректный вариант:

```cpp
double calc(Box bx, int angle, double scale) {
  return Math.tan((angle % 2 == 0 ?
         bx.side_x : bx.side_y) * 0.42) * scale;
}
```