﻿# V6041\. Suspicious assignment inside the conditional expression of 'if/while/do\.\.\.while' statement\.

Анализатор обнаружил ситуацию, когда в условии оператора 'if'/ 'while'/'do\.\.\.while' присутствует оператор присваивания '\='\. Подобная конструкция часто свидетельствует о наличии ошибок\. Высока вероятность, что вместо оператора '\=' планировалось использовать оператор '\=\='\.

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

```cpp
void func(int x, boolean skip, ...)
{
  if (skip = true) {
    return;
  }
  ...
  if ((x > 50) && (x < 150)) {
    ...
  }
  ...
}
```

В коде допущена опечатка: вместо проверки переменной 'skip' на истинность происходит изменение значения переменной 'skip'\. В итоге, из\-за опечатки условие будет истинно, и всегда будет выполняться оператор 'return'\. Корректный вариант кода:

```cpp
if (skip == true){
  return; 
}
```

или

```cpp
if (skip){
  return; 
}
```