package com.javarush.task.jdk13.task04.task0442;
import java.io.BufferedReader;
import java.io.InputStreamReader;
/*
Суммирование
*/
public class Solution {
public static void main(String[] args) throws Exception {
//напишите тут ваш код
BufferedReader s = new BufferedReader(new InputStreamReader(System.in));
int sum = 0;
int i = Integer.parseInt(s.readLine());
do
{
sum += i;
}
while (i == -1);
System.out.println(sum);
}
}
Читает только первое число, пробовал строку < int i = Integer.parseInt(s.readLine()); > ставить после "do" выдает ошибку...
Naizen
2 уровень
Помогите пожалуйста, не могу заставить его считывать все числа с клавиатуры
Обсуждается
Комментарии (2)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Сергей
6 октября 2021, 04:39
Конечно только первое число читает - ведь чтение чисел здесь не в цикле
0
hidden #2788915
5 октября 2021, 20:25
- Переменной i нужно присваивать значение в начале цикла.
- Условие цикла не правильное.
Строку int i = Integer.parseInt(s.readLine()); нельзя вносить в цикл. Так как переменная i будет объявляться в цикле. И ее область действия будет только в цикле после объявления и до закрывающей фигурной скобки цикла.
А если все же строку int i = Integer.parseInt(s.readLine()); поместить в цикл то использование переменной i в строке while (i == -1); ошибочное. Будет ошибка, что i не инициализированная переменная.
Переменную i нужно объявить до цикла, а присвоить ей значение в цикле.
И если я правильно понял, что при вводе -1 цикл завершает работу и программа выводит сумму введенных чисел.
То тогда в условии while (i == -1); нужно пставить != вместо ==. Это будет означать, что пока введенное число не равно -1 цикл будет повторяться.
И тогда будет все работать. Но -1 тоже попадет в сумму чисел.
НОО ВВОДИТЬ ТОЛЬКО ЧИСЛА И ИНАЧЕ ВСЕ СЛОМАЕТСЯ.
0