/*
Это конец
Создать список строк.
Ввести строки с клавиатуры и добавить их в список.
Вводить с клавиатуры строки, пока пользователь не введет строку "end". Саму строку "end" не учитывать.
Вывести строки на экран, каждую с новой строки.
Требования:
1. Объяви переменную типа список строк и сразу проинициализируй ee.
2. Считывай строки с клавиатуры и добавляй их в список, пока пользователь не введет строку "end".
3. Саму строку "end" не нужно добавлять в список.
4. Выведи список на экран, каждое значение с новой строки.
5. Используй цикл for.
*/
public class Solution {
public static void main(String[] args) throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
ArrayList<String> list = new ArrayList<String>();
// Первый вариант цикла (не работает)
/*while (true) {
if (reader.readLine().equals("end")) {
break;
}
list.add(reader.readLine());
}*/
//Второй вариант цикла (работает)
while (true) {
String string = reader.readLine();
if (string.equals("end")) {
break;
}
list.add(string);
}
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
}
}
}
lastix
35 уровень
Объясните пожалуйста почему не работает первый вариант цикла while
Решен
Комментарии (2)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Дмитрий СоснинExpert
17 января 2021, 06:33
допустим у тя есть две строчки
не_end
end
второй способ отработает нормально, а вот в первом ты сначала считаешь 1ю строчку, проверишь её и занесёшь в список вторую. И вдобавок к этому алгоритм остановиться в ожидании новой строчки. А это немного не то, что требуется
+1
lastix
17 января 2021, 07:29
понял, спасибо!
0