package com.javarush.task.pro.task04.task0407;
/*
Сумма чисел, не кратных 3
*/
public class Solution {
public static void main(String[] args) {
int sum = 0;
int number = 0;
while (number<=100){
if (number%3==0){
number++;
continue;
}sum = sum + number;
number++;
}System.out.println(sum);
}
}
Андрей Николаев
6 уровень
Зачем нужно второй раз писать number++;
Обсуждается
Комментарии (3)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
John_lis learning Java
17 июля, 13:34
насколько я смог прочитать этот код, есть пару недочетов на что нужно обратить внимание
фигурные скобки
расположение number++ перечитайте лекцию выше задания пример все правильно написано там примните также все сработает
0
KonstantinExpert
5 июля, 20:25
Вы, в вашей реализации, постоянно инкрементируете значение number, т.к. нужно получить следующее число для следующей итерации. У вас в цикле while есть блок кода по условию, в нем вы увеличиваете число (т.е. переходите к следующему числу) и вызываете continue для того, чтобы выполнить цикл заново, т.е. дальше после этого ключевого слова итерация выполняться не будет (код за блоком if не будет выполняться). Если же условие в if не выполняется, то вы добавляете число к сумме и, опять же, вам нужно инкрементировать значение number.
В общем виде: у вас в рамках итерации выполнится либо блок кода в if, либо то, что находится за ним, поэтому в обоих блоках вы выполняете инкремент number.
Для упрощения реализации и читабельности можно упростить данный код, например:
0
Anonymous #3303140
2 июля, 08:46
Зависит от того, где писать и какое условие использовать. Если рассматривать именно твой цикл, то тебе нужно переходить к следующему number и в случае, когда число делится на три, и когда не делится. Поэтому и написано в обеих ветках.
Но можно решить и по-другому, с одним инкрементом. Скорее всего это потребует изменить условие в цикле.
В цикле number строго меньше 100, потому что внутри цикла number сначала увеличится, а потом будет выполняться проверка. При этом значение number = 0 проверяться не будет, потому что оно в любом случае не увеличит сумму. Можно вообще вынести инкремент в условие цикла, но это чуть хуже читается:
Следи за оформлением кода, не пиши после закрывающих фигурных скобок }. Используй Ctrl (Cmd) + Alt + L для автоформатирования кода. 0