Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Объясните пожалуйста, как работает данная программа с оператором while и do while на JAVA (сумма натуральных чисел )

Данила Метелин Профи (708), на голосовании 1 год назад
не совсем понимаю, какую роль играет тут переменная s1=0 и i=1
c инкрементом (++) в принципе понятно, увеличивается на единицу. Но я не понимаю как работает, вычисление, и какую роль тут играет count?
Мы в count указываем число допустим 7.
Оператор while проверяет команду while(i<=count) то есть 1<=7
Дальше вступает в игру блок
s1+=i;
i++;
Что в этом блоке происходит, я так и понял.
0+=?
?++
Как он считает сумму натуральных чисел от 1 до 7?
Голосование за лучший ответ
Оракул Оракул (62089) 1 год назад
count - тут это верхняя граница ДО
s1 и s2 - одинаковые суммы, вычисленные двумя разными циклами
i и j - просто счетчики, чтобы остановить цикл, циклов два, каждому свой счетчик
s1 += i и s2 += j - это и есть прибавление очередного числа к результату
Jurijus Zaksas Искусственный Интеллект (445791) 1 год назад
>Объясните пожалуйста, как работает данная программа
Плохо и медленно. Нет никакого смысла использовать циклы, если без них можно обойтись.

>не совсем понимаю, какую роль играет тут переменная s1=0 и i=1
В i у тебя текущее натуральное число, в s1 аккумулируется сумма по мере инкремента i.

>Но я не понимаю как работает, вычисление, и какую роль тут играет count?
В нем хранится число, до которого увеличивается i
Данила МетелинПрофи (708) 1 год назад
Я все равно не совсем понимаю. Можно как-то разжевать?
Андрей Панарин Искусственный Интеллект (249316) 1 год назад
Цикл while сначала думает (проверяет условие), а потом делает (выполняет тело цикла).
Снова думает и снова делает.
И так далее, пока при проверке соблюдается условие цикла.

Это значит, что если при первой проверке условие не будет соблюдено, то тело цикла while не выполнится ни разу. Например, если count = 0, то изначально будет i = 1, и условие i <= count не будет соблюдено, так как 1 <= 0 - это ложь. Получим s1 = 0 (как и было изначально).

Цикл do-while сначала делает (выполняет тело цикла), а потом думает (проверяет условие).
Снова делает и снова думает.
И так далее, пока при проверке соблюдается условие цикла.

Это значит, что тело цикла обязательно выполнится хотя бы один раз.
Например, если count = 0, то выполнится s2 += j; j++; так что мы получим s2 = 1, j = 2.
А потом будет проверка j <= count и обнаружится, что 2 <= 0 - ложь. Цикл закончится.

Результат для while: s1 = 0.
Результат для do-while: s2 = 1.
Александр Искусственный Интеллект (301635) 1 год назад
название переменным придумывал "с чудинкой" человек
Похожие вопросы