Это конец

  • 5
  • Недоступна
Давайте создавать список строк, вводя их с клавиатуры, пока не надоест. Надоесть может в любой момент, и на этот случай нужно придумать специальное слово. Пускай этим словом будет «end», то есть «конец». А зачем нам эти строки, спросите вы. А мы ответим: затем, чтобы добавлять их в список, а затем выводить на экран.
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (221)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий вы должны авторизоваться
Romansky 8 уровень, Днепр
5 января, 14:28
Решил двумя форами 1. проверка на "end" + add 2. Вывел список Может кому-то поможет
Sherminator Senior QA engineer в Банк ВТБ
25 декабря 2020, 23:30
Елки палки, решил задачу несколькими способами... ну никак и через for и while... вылетает ошибка и хоть убей! Полез в комменты почитать, у некоторых ребят решение один в один... Потом смотрю в логи, вылетает какой-то странный эксепшн, думаю, ватафак??? В итоге присмотрелся, это эксепшн к задаче 0721, а я решаю 0722) Блин, со своими входными данными, запускал другую, через Run в тулбаре сверх. Все заработало при запуске по клику на код -> Run
Евгений 9 уровень, Санкт-Петербург
25 декабря 2020, 17:17
Решал через list.get(i).contains("end"), а в правильном решении решено через equals. Как так вышло?)) Вроде же eqials не работает в ArrayList или я что-то не так понял?
Михаил Никитюк 8 уровень, Харьков
15 января, 18:51
там промежуточная переменная string он с ней сравнивает , а не с списком
String s = reader.readLine();
            if (s.equals("end")) break;
Тоник ремонт мобильной техники в FixiT-сервис
3 декабря 2020, 13:28
Сделал с помощью цикла for. Всё работает, всё ок. Валидация прошла. Как обычно после валидации смотрю готовое решение: а там while, да ещё и строка в список добавляется ещё до условия, которое завершает цикл О_о Итого вопроса целых 2: 1) в условии сказано Вводить с клавиатуры строки, пока пользователь не введет строку "end". Саму строку "end" не учитывать. Но разве она не учитывается, если делать как в решении?? О_о И если не учитывается - получается что я не до конца понял логику этого цикла - поясните, пжлст)) 2) Даже если я туплю на счет первого вопроса. Зачем писать "делай через for", и в ответе делать через while? ))
Pablo 11 уровень
23 декабря 2020, 13:55
1.Строка не добавляется в список до проверки условия: while (true) { String string = reader.readLine(); if (string.equals("end")) { break; } strings.add(string); } Сначала мы присваиваем переменной String значение введенной строки. Лишь потом идёт условие: а не эквивалентно ли это значение "end"? Если да, эквивалентно, то цикл тут же прекращается (break). Если же нет, то мы уже записываем в наш список. 2. Фраза "Строку end не учитывать" подразумевает не учитывать ее в списке (не добавлять). 3. Тут немного "скользкое" требование, согласен. Но опять же, оно не подразумевает использовать только цикл for, а лишь требует наличие хотя бы одного)
Андрей 8 уровень, Москва
26 декабря 2020, 19:59
А вот ни разу не согласен! "немного "скользкое" требование"! Полчаса через for пытался решить. Перебрал кучу источников. И на те вам пожалуйста! Решение через while! Я понимаю заказчики разной идиотии бывают, но ставьте ТЗ корректнее!
Myko Vendor в Silpo
8 января, 22:50
У меня тоже сразу эта идея сверкнула, потом дочитал до конца и угасла. Потом почитал комменты и написал как задумал)) Последнее требование сбило с толку.
Evgeny Vdovin 8 уровень
21 ноября 2020, 15:09
Зачем есть условие Используй цикл for, если в правильном решении используется while? Я тоже хотел использовать while, он тут гораздо логичней. А так пришлось в for писать true. Кстати, подобных задач мы уже несколько делали, только не на списки. Всегда в подобных задачах делаю вывод перед тем как написать break, т.о. не надо писать вывод после цикла. Разницы никакой, но мне так больше нравится.
Sergey Bizinow DevOops в Devexperts
7 декабря 2020, 00:37
Валидатору на самом деле пофиг где использован цикл фор, решал через вайл выводил через фор... Л - логичность ..... Иногда это ломает мозг.
Владимир 8 уровень, Москва
19 ноября 2020, 17:32
Может не совсем правильно и лаконично, но валидатор принял со 2-й попытки: с одним for и одним if, сравнение объекта в списке производил, кстати, через contains.
Платон 17 уровень
9 ноября 2020, 10:20
Персоны! Никогда не копипастите данные ввода из условий задачи Вводите данные в консоль ручками, чтобы не переписывать рабочий код десятки раз, но разными способами
Имя Фамилия 12 уровень, Москва
8 ноября 2020, 14:11
Первая попытка не прошла, т.к. проверял equals уже после добавления строки в массив (и в цикле для соута ставил
i < listX.size()-1
Исправился, перенёс проверку equals перед listX.add( s ); И конечно же вляпался на второй попытке, забыв убрать -1 из листсайза в цикле у соута. Смеялся сам с себя ))
DAS 8 уровень, Москва
31 октября 2020, 10:07
Вспомнил про equals() и задача приобрела уровень easy:)
Дмитрий 9 уровень, Кропоткин
4 ноября 2020, 11:14
Еще можно воспользоваться contains().
Александр 9 уровень
28 октября 2020, 12:26
Использовал int max = Integer.MAX_VALUE; и if contains("end") удаляю последнюю строку через remove(i); break