Я попытался проверить следующий код и обнаружил, что цикл никогда не выполняется:
int i=0;
for(;i++;cout<<i)
{
if(i==5)
break;
}
Я прочитал следующее сообщение о значении, возвращаемом cout из следующего сообщения:
В чем разница между cout << cout и cout << и cout в c++?
Но я не могу понять, почему. Может кто-то помочь мне с этим.
int i = 0;
for (; i++; cout << i)
В первом цикле i++
оценивается как 0 до того, как происходит инкремент, и таким образом завершает цикл.
При первом i++
условия выхода цикла (i++
) значение i
равно 0 (т.е. false). Следовательно, он никогда не входит в цикл.
i++
- это приращение. Таким образом, i
становится 1, но значение, которое проверяется в условии выхода цикла, является значением до приращения - то есть 0.