Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > Особенности условий в цикле


Автор: Fly1410 24.10.2008, 19:14
Недавно в тесте встретил такой вопрос:

какой результат будет после выполнения этого теста?

Код

for (int i=1; i<=10; System.out.println(i)) {            
   i++;
}




Какой результаты можете сами посмотреть. А вот почему?

Автор: LSD 24.10.2008, 19:19
Порядок выполнения цикла for(секция 1; секция 2; секция 3):
1. выполняется секция 1
2. осуществляется проверка результата в секции 2, если false то выход из цикла
3. выполняется тело цикла
4. выполняется секция 3
5. переход на пункт 2

Автор: frikey 24.10.2008, 19:24
Как мне кажется здесь дело вот в чём:
Условие прироста (а у тебя сейчас на том мсте стоит System.out.println()) переменной цикла выполняется после выполнения кода, расположенного в фигурных скобках.
Т.е. ex:
Допустим i = 9. Сначала идёт проверка на раенство и... кхм... меньшевитость smile 10. Естественно 9 меньше чем 10. Выполняеться i++. Затем System.out.println(i);
Далее, i теперь равна 10. Проверка: 10 равно 10. Далее i++. Вывод на экран даёт 11.

Далее следующая итерация не выполняеться потому что проверка (11 =<10) = false

Вот как то так

Автор: susanin 25.10.2008, 01:39
Цитата(Fly1410 @  24.10.2008,  19:14 Найти цитируемый пост)
какой результат будет после выполнения этого теста?

ну если умом не догадаться что будет, можно наверно создать пролектик и записать туда этот код на крайний случай..и посмотреть что он будет делать..

Автор: Fly1410 27.10.2008, 19:01
спасибо

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)