@Last_flower_of_hope

Циклы без цела в Java.Как Рассчитывает компилятор?

// Тело цикла for может быть пустым
public class Empty3 {
public static void main(String args[]) {
int i;
int sum =0 ;

for(i = 1; i <= 5; sum+= i++);// В цикле отсутствует тeло
System.out.println("Cумма: "+sum);
}
}

сложить со значением переменной sum результат суммирования значений переменных sum и i, а за­тем инкрементировать значение переменной i. Следовательно, данный оператор равно­значен следующей последовательности операторов.
sum = sum + i;
i++;
Ответ будет:15
Как компилятор рассчитывает?Не могу понять текст.
Если sum =2//Тогда ответ 17.Как так ? Помогите дураку!
  • Вопрос задан
  • 306 просмотров
Решения вопроса 2
zagayevskiy
@zagayevskiy Куратор тега Java
Android developer at Yandex
Что вам непонятно?
sum = 0+1+2+3+4+5=15
сложить со значением переменной sum результат суммирования значений переменных sum и i, а за­тем инкрементировать значение переменной i.
повторять до тех пор, пока i не станет больше 5.
Ответ написан
@di23
А в чем не понимание?
Вот результаты каждого цикла:
1. sum = 0 + 1
2. sum = 1 + 2
3. sum = 3 + 3
4. sum = 6 + 4
5. sum = 10 + 5
В итоге 15, если начальная sum = 2, то будет 17. В чем сложность?
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
And3en
@And3en
Software Engineer at Luxoft
Это базовые знания.
for (^init^; ^condition^; ^expression^) { ^body^ }

Тело можно выкинуть, как и остальные части.
^init^ выполняется только 1 раз в начале цикла.
На следующих шагах при каждом проходе цикла будет выполнятсья ^expression^, затем проверятся валидность ^condition^

можете хоть полностью пустым оставить
for (;;);
работать будет ;)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы