Итак есть программа, которая выводит следующее:
13 15 x = 6
Но не совсем понятно почему x = 6, а не 7 (как мне казалось должно выйти) и почему значение y выводит после 13 не 14, а сразу 15
public class Output {
public static void main(String[] args) {
Output o = new Output();
o.go();
}
void go() {
int y = 7;
for (int x = 1; x < 8; x++) {
y++;
if (x > 4) {
System.out.print(++y + " ");
}
if (y > 14) {
System.out.println(" x = " + x);
break;
}
}
}
}
P.S. Объясните, как программа ведет себя после того как x доходит до значение равное 5
Почему 13 и потом сразу 15?
Когда первый раз (x = 5) выполняется условие x > 4, в этот момент постфиксный инкремент y++ дает 12, а префиксный инкремент в System.out.print(++y + " "); дает y = 13. Вторая итерация, когда x = 6, опять же срабатывают два инкремента и на выходе получаем y = 15.
Почему x = 6, а не 7?
Когда выполняется условие y > 14, в этот момент x = 6, в теле условия это выводится на печать и break заканчивает работу цикла for, поэтому x не достигает значения 7.
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости