В C / C ++ условие истинно во всех смыслах, если оно ненулевое.Позвольте мне пояснить это, приведя пример:
#include<iostream>
using namespace std;
int main()
{
int a=5, b=-5;
while(a)
{
cout<<"# ";
a--;
}
cout<<"\n";
while(b)
{
cout<<"* ";
b++;
}
return 0;
}
Вывод кода будет следующим:
# # # # #
* * * * *
Если вы посмотрите на это, внутри 'a' покацикл , условие является положительным и уменьшается до тех пор, пока значение не станет равным «0».Пока значение не равно 0, условие называется истинным, и поток управления выполняет операторы внутри цикла while.
В цикле 'b' while он четко виденчто даже если 'b' отрицательно, операторы внутри цикла while будут выполняться до тех пор, пока значение 'b' не увеличится до 0.
Видно, что каждый ненулевой член считается истинным условиеми 0 (ноль) считается ложным условием.Ошибочно полагать, что (только) 1 является истинным, а 0 - ложным.
Синтаксис для цикла for
: for(declaration;condition;iteration)
.Если одно из утверждений отсутствует, цикл все равно будет продолжать выполняться.A for loop
работает до тех пор, пока условие выполняется.Поток управления сначала приходит к объявлению, затем проверяет условие.Если условие истинно, то оно выполняет операторы в области видимости цикла.Наконец, управление приходит к итеративным операторам и снова проверяет условие.Во время выполнения, если в любой момент условие зацикливания оказывается равным false
, тогда элемент управления завершает программу или выполняет операторы сразу после цикла.