﻿# V3109\. The same sub\-expression is present on both sides of the operator\. The expression is incorrect or it can be simplified\.

Анализатор обнаружил одинаковые подвыражения в левой и правой части оператора сравнения \(comparison operator\)\. Возможно, эта операция содержит ошибку, не имеет смысла, либо может быть упрощена\.

Рассмотрим пример\. Допустим у нас имеется выражение следующего вида:

```cpp
if ((x – y) >= (x - z)) {};
```

Очевидно, что использование переменной 'x' в данном фрагменте кода является избыточным и переменная может быть сокращена в левой и правой частях выражения\. Тогда упрощенный код может выглядеть так:

```cpp
if (y <= z) {};
```

Рассмотрим следующий пример:

```cpp
if (x1 == x1 + 1) {};
```

Данное выражение уже содержит явную ошибку, так как будет ложным при любом значении переменной 'x1'\. Возможно, здесь присутствует опечатка и корректный код мог бы выглядеть так:

```cpp
if (x2 == x1 + 1) {};
```

Рассмотрим еще одно выражение: 

```cpp
if (x < x * y) {};
```

В данном выражении также может быть сокращена переменная 'x'\. При этом упрощенное и более понятное выражение могло бы иметь вид:

```cpp
if (y > 1) {};
```