package com.javarush.task.task07.task0722;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
/*
Это конец
*/
public class Solution {
public static void main(String[] args) throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
ArrayList<String> list = new ArrayList<>();
for (int i = 0; i < 5; i++) {
if ("end".equals(reader.readLine())) {
break;
}
else list.add(reader.readLine());
}
for (int i = 0; i < list.size()-1; i++) {
System.out.println(list.get(i));
}
}
}
Kamran
8 уровень
Что не так?
Обсуждается
Комментарии (10)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
ГоффMaster
17 октября 2020, 23:26
Главная проблема в том, что ты за один проход цикла дважды читаешь консоль - один раз readLine() у тебя выполняется в строке 17, второй раз - в строке 20.
Условия задачи не вижу, но это в любом случае ошибка.
Кроме того - не понятна сама конструкция. Тебе надо 5 раз считать или надо считывать до тех пор, пока не буедт введено end?
0
Lenar Khisamov
17 октября 2020, 23:11
тут есть ошибка в этом месте, ты указываешь конкретные данные на 5 строк, поставь просто true
int i = 0; true; i++
list.size() без минус 1 оставь. все попрет.
0
Александр Бордуков
9 октября 2020, 19:29
Чему равен list.size(), если список не проинициализирован?
0
Kamran
9 октября 2020, 19:34
Заменил на число, что дальше?
0
Александр Бордуков
9 октября 2020, 19:46
Ну это не совсем верное решение, валидатор может его не пропускать, потому что формально тебе нужно добавлять строки до того момента, пока пользователь не введет end, вне зависимости от количества строк.
Это делается через while (true) {
if (string.equals("end") {
break;
}
Что уже полностью будет соответствовать условиям задачи.
Ну и в последнем цикле зачем -1 от размера списка?
0
Kamran
9 октября 2020, 19:50
можете объяснить как работает while?То есть мне не совсем true понятно, то что в скобках
0
Александр Бордуков
9 октября 2020, 19:55
while (true) - само по себе условие бесконечного цикла, цикл с этим условием работает вечно, пока не получит break. Условие в скобках никогда не нарушается и не изменяется, потому цикл будет добавлять значения, пока не наступит определенное уже внутри самого тела цикла условие.
0
ГоффMaster
17 октября 2020, 23:29
Вообще, если есть возможность избежать while (true), то его надо избегать:
0
Булат РахимовExpert
9 октября 2020, 19:29
проблема в этой строке
0
Kamran
9 октября 2020, 19:33
ок, заменил ее на число
0