﻿# V793\. It is suspicious that the result of the statement is a part of the condition\. Perhaps, this statement should have been compared with something else\.

Анализатор обнаружил возможную опечатку в логическом выражении\. В качестве условного выражения используется арифметическая операция\. 

Пример:

```cpp
int a;
int b;
if (a + b) {}
```

Несмотря на то, что поведение такого кода может быть понятно его автору, лучше использовать явные проверки\. Такой код аналогичен 'a \+ b \!\= 0'\. Человек, который будет читать и сопровождать этот код, постоянно будет задавать себе вопрос: "А не забыли ли сравнить с чем\-то полученную сумму?"\. Возможно, результат операции хотели сравнить с некой константой, например, 42, и корректный код должен был быть таким:

```cpp
if (a + b == 42) {}
```

Пример из кода реального проекта:

```cpp
// verify that time is well formed
if ( ( hh / 24 ) || ( mm / 60 ) ) {
  return false;
}
```

Код работает, как и задумывалось\. Но он бы выглядел намного понятнее, если бы использовались операции сравнения\.

```cpp
// verify that time is well formed
if ( hh >= 24 || mm >= 60 ) {
  return false;
}
```