Unicorn with delicious cookie
Мы используем куки, чтобы пользоваться сайтом было удобно.
Хорошо
to the top
>
>
>
V3011. Two opposite conditions were...
menu mobile close menu
Проверка проектов
Дополнительная информация
toggle menu Оглавление

V3011. Two opposite conditions were encountered. The second condition is always false.

14 Дек 2015

Анализатор обнаружил возможную логическую ошибку, связанную с тем, что два условных оператора, идущих последовательно, содержат взаимоисключающие условия.

Примеры таких условий:

  • "A == B" и "A != B";
  • "A > B" и "A <= B";
  • "A < B" и "B < A";
  • и тому подобные.

Такая ошибка может возникнуть в результате опечатки или неудачного рефакторинга.

Пример некорректного кода:

if (x == y)
  if (y != x)
    DoSomething(x, y);

В данном случае метод 'DoSomething' никогда не будет вызван, так как при истинности первого условия второе всегда будет ложным. Возможно, в сравнении используется некорректная переменная. Например, во втором условии следовало использовать не 'x', а 'z':

if (x == y)
  if (y != z)
    DoSomething(x, y);

Данная диагностика классифицируется как:

Взгляните на примеры ошибок, обнаруженных с помощью диагностики V3011.