System.out.println("Все верно?(y/n)");
Scanner answ = new Scanner(System.in);
if (answ.nextLine() == "y")
System.out.println("Ok");
if (answ.nextLine() == "n")
System.out.println("Try again");
else
System.out.println("Неверный ввод(y/n)");
Выдает:
Все верно?(y/n)
y // Пишу 'y'
y // Но он опять пытается считать ввод, ввожу опять 'y'
Неверный ввод(y/n) //И в итоге выводит это
Вы сравниваете строки оператором ==
, когда это нужно делать с помощью метода equals()
.
string1.equals(string2);
Оператор ==
сравнивает не объекты, а ссылки на них, если это не примитивные типы.
Второй оператор if
у вас не связан с первым посредством else
.
Также вы не сохранили значение считанной строки, вместо этого вы вызвали метод nextLine()
для каждого оператора if
, из-за чего второе условие не срабатывает, если ввести "n", а просит сделать ввод ещё раз.
Исправленный код будет выглядеть так:
System.out.println("Все верно?(y/n)");
Scanner answ = new Scanner(System.in);
String answer = answ.nextLine();
if (answer.equals("y"))
System.out.println("Ok");
else if (answer.equals("n"))
System.out.println("Try again");
else
System.out.println("Неверный ввод(y/n)");
Нужно чтобы строка типа "+ 5 7" делилась на знак, число, числоЗнак любой, число любое
Помогите разобраться с мистическим поведениемИмеется сущность