# V654. Condition of a loop is always true/false.

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

Рассмотрим пример некорректного кода:

    for (i = 0; 1 < 50; i++)
    { .... }

В коде допущена опечатка. В условии вместо переменной 'i' была напечатана константа '1'. Исправить такой код не представляет больших трудностей. Корректный вариант кода:

    for (i = 0; i < 50; i++)
    { .... }

Анализатор не будет выдавать предупреждающее сообщение, если условие задано явно в виде константного выражения '1' или '0', 'true' или 'false'. Пример такого кода:

    while (true)
    { .... }

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

CWE-834

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