Ребят не могу понять почему объект типа String должен находиться именно внутри while, как это работает если String находиться на уровень выше то программа пишет ошибку, но почему, сломал голову объясните? Почему такой код не работает?:
public class Solution {
public static void main(String[] args) {
Scanner console = new Scanner(System.in);
String words = console.nextLine();
boolean endless = true;
while (endless) {
if (words.equals("enough")) {
break;
}
System.out.println(words);
}
}
}
Anonymous #2592806
6 уровень
Сломал голову прошу объяснить. Почему объект типа String должен находиться внутри цикла, совсем не понимаю.
Обсуждается
Комментарии (5)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
humma
19 апреля 2021, 21:44полезный
Эта строка отвечает за ввод переменной с клавиатуры.
Если ты объявляешь его (ввод) перед циклом, то ввод происходит единожды.
Если же ты объявляешь его в цикле, то он (ввод) выполняется до тех пор, пока работает цикл (в твоем случае до тех пор, пока очередная введенная строка с клавиатуры не будет равна "enough")
В условии задачи наверное сказано, что нужно реализовать программу таким образом, чтобы она вводила строки до тех пор, пока очередная введенная строка не будет равна "enough". Отсюда и ответ, почему ввод должен "крутиться" в цикле.
Надеюсь, смог донести мысль?
+10
Михаил
19 апреля 2021, 18:30
а в чем смысл твоего цикла? В какой момент он может выйти? если ворд не равен в ифе то это бесконечный цикл. напиши этот код не в идее а в блокноте и скомпилируй байткод. если пройдет то висеть.вечно.будет ;)
+1
Anonymous #2592806
19 апреля 2021, 19:03
Да я понимаю что он бесконечный, но что меняется, когда код начинает выглядеть так:
public class Solution {
public static void main(String[] args) {
Scanner console = new Scanner(System.in);
boolean endless = true;
while (endless) {
String words = console.nextLine();
if (words.equals("enough")) {
break;
}
System.out.println(words);
}
}
}
0
Anonymous #2592806
19 апреля 2021, 19:04
После того как объект String вставляю внутрь цикла while код работать начал как подразумевалось в задание
0
Михаил
20 апреля 2021, 03:16
Как только у тебя появляется в цикле String words = console.nextLine(); то цикл перестает быть бесконечным. Так как на каждом круге значение words может отличаться. То есть шанс что он будет равен enough уже есть.
console.nextLine() это остановка на введение нового значения с консоли.
+1