Использование cout внутри цикла FOR

0

Я попытался проверить следующий код и обнаружил, что цикл никогда не выполняется:

   int i=0; 
   for(;i++;cout<<i)
   {
          if(i==5) 
                 break; 
   }

Я прочитал следующее сообщение о значении, возвращаемом cout из следующего сообщения:

В чем разница между cout << cout и cout << и cout в c++?

Но я не могу понять, почему. Может кто-то помочь мне с этим.

  • 1
    Вы написали крайне не идиоматический цикл; что вы ожидаете от этого кода?
Теги:

2 ответа

3
Лучший ответ
int i = 0;
for (; i++; cout << i)

В первом цикле i++ оценивается как 0 до того, как происходит инкремент, и таким образом завершает цикл.

2

При первом i++ условия выхода цикла (i++) значение i равно 0 (т.е. false). Следовательно, он никогда не входит в цикл.

i++ - это приращение. Таким образом, i становится 1, но значение, которое проверяется в условии выхода цикла, является значением до приращения - то есть 0.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню