2013-08-15 2 views
0
if (true) { 
    std::cout << "1" << std::endl; 
    for (int i = 1; i >= 16; i++) { 
     std::cout << "2:" << i << std::endl; 
    } 
    } 

Выход:Управляющий поток не входит в цикл, как это возможно?

1 

Я совершенно запутался и из идей, любой совет будет весьма признателен.

+10

'i' никогда не больше или равно 16. – chris

+0

Вы просто сбиты с толку. Цикл запускается до тех пор, пока 'i> = 16', что никогда не является истинным, потому что« 1 <16 »и все. Возможно, вы имели в виду 'i <= 16'? – Jon

+0

Цикл 'for' оценивает его состояние, прежде чем вводить его в первый раз. Если изначально условие не истинно, цикл никогда не будет выполнен. –

ответ

14

состояние вашего цикла является: i >= 16;

Вы сказали, что в то время как петли i больше или равно 16. Это не является, потому что вы инициализирован его 1.

1

У вас есть более, а не менее.

if (true) { 
    std::cout << "1" << std::endl; 
    for (int i = 1; i <= 16; i++) { 
     std::cout << "2:" << i << std::endl; 
    } 

}

2

Это должно быть следующее:

if (true) { 
    std::cout << "1" << std::endl; 
    for (int i = 1; i <= 16; i++) { 
    std::cout << "2:" << i << std::endl; 
    } 
} 

[меньше, чем, не больше. [<]]

+0

Вы все еще использовали больше. – 0x499602D2

+1

Упс, возможно, не редактировал его код. Я был уверен, что я ... –

Смежные вопросы