Напишем программу, в которой нужно вводить с клавиатуры целые числа и считать их сумму, пока пользователь не введет слово "ENTER".
Вывести на экран полученную сумму и завершить программу.
Суммирование
- 4
Недоступна
Комментарии (432)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
[YZ]OlegLevin Java Developer Expert
вчера, 14:59
int sum = 0;
int num= 0;
Scanner scanner = new Scanner(System.in);
while (true) {
if (scanner.hasNextInt()) {
num = scanner.nextInt();
sum += num;
} else if(scanner.nextLine().equals("ENTER")){
System.out.println(sum);
break;
}
}
0
zyttto Software Developer
вчера, 06:04
По хорошему ещё надо проверить что ввели именно число... Но тут условия упрощённые, и тренируем циклы а не проверки, поэтому я их опустил.
0
Ренат
позавчера, 20:02
Всем привет. Подскажите, где я ошибаюсь. Проверка пишет, что не выполнено условие 2:
Необходимо посчитать сумму введенных целых чисел и вывести её на экран, если пользователь ввел стоп слово.
А вот код:
0
Эдуард
5 февраля, 12:27
все проще чем кажеться
0
TattooistExpert
31 января, 18:55
+3
How to Play
5 февраля, 15:18
Добрый день! Подскажите, пожалуйста, что делает "!" перед "(sc.hasNext("ENTER"))"?
Правильно ли я понимаю что это знак отрицания? Т.е. пока в консоль НЕ будет введен "ENTER", цикл будет продолжаться?
0
TattooistExpert
5 февраля, 16:35
да, совершенно верно
+2
Дмитрий Евгеньевич
позавчера, 07:31
Изящное решение 👍 Лучше чем в "правильном коде". Я тоже в этом направлении размышлял но получилось немного корявее: 😁
0
Chappa
вчера, 11:15
а где-то кроме одно примере в этом же уроке у нас уже появлялось hasNextInt? А то я будто впервые его увидел
+1
миша :)
29 января, 15:12
0
RomanKamko
27 января, 12:03
Scanner scanner = new Scanner(System.in);
int sum = 0;
while (true) {
if (scanner.hasNextInt()) {
sum += scanner.nextInt();
} else if (scanner.nextLine().equals("ENTER")) {
System.out.println(sum);
break;
}
}
+3
Vladislav Mudry
вчера, 15:14
Как у тебя получилось так круто сделать?
0
Nazar Android Developer
25 января, 23:45
package com.javarush.task.pro.task04.task0403;
import java.util.Scanner;
/*
Суммирование
*/
public class Solution {
public static void main(String[] args) {
//напишите тут ваш код
Scanner scanner = new Scanner(System.in);
int sum = 0;
while (true) {
String input = scanner.nextLine();
if (input.equals("ENTER")) {
break;
}
sum += Integer.parseInt(input);
}
System.out.println(sum);
}
}
Держите))
+1
Idunno Lol
20 января, 09:24
Ушло несколько дней, но сейчас я разобрался со скобками и всей этой бигуди, короче кому интересно, что я понял.
1. Наверное, самое важное - это то, что фигурные скобки это ОООООЧЕНЬ важная штука. Из за них стало все работать, блок команд делать обязательно если вписываешь туда инты, иначе инт не инициализируется и скажет что ему тут нельзя этого сделать.
2. Я НЕ ПОНЯЛ почему у меня инициализированные в блоке команд переменные иногда не определяются в следующем блоке, например. Ну с этим еще предстоит разобраться.
3. Ну и наверное последнее, я не понял почему именно когда делаешь переменную с суммой и присваиваешь ей 0, потом в цикле плюсуешь ее к инпуту, почему все числа в одну строку плюсуются. Ну то есть получается одно число, а не 4. Ну, немного доходит уже догадка, но лучше если кто то объяснит.
СПАСИБО ЗА ВНИМАНИЕ
0
hint1k
21 января, 13:16
потому что в одну и ту же переменную при каждом витке цикла перезаписывается заново новое число, затирая старое число, которое там хранилось.
1) Например до начала цикла x = 0;
И есть цикл с выражением x = x + 1;
2) В первом витке цикла в переменную x справа от знака равно записывается то, что было в переменной x до этого витка (начальное значение = 0) и прибавляется единичка. И сумма записывается в x слева от знака равно. Т.е. после выполнения этого первого витка цикла (x = 0 + 1 = 1), x будет равен 1.
3) И второй виток цикла x = x +1;
Теперь уже в x справа от знака равно записывается не 0, а 1 (не начальное значение, которое затерли, а новое значение из первого витка цикла). И тогда в переменную икс слева от знака равно записывается уже число 2 (потому что x = 1+1 = 2). И тогда в следующем витке цикла в переменной x будет хранится уже число 2, а не 1 и не 0.
4) И так далее.
+1
Idunno Lol
21 января, 14:02
Все, понял, спасибо огромное.
0
Кристина Гаевская
11 января, 14:28
Уже и забыла про hasNextInt() ))))
0