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

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

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

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

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

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

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

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

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