Вы сравниваете строки неправильно.Вы должны использовать метод equals()
, например:
if (answer.equals("yes"))
При программировании на Java оператор ==
обычно используется для сравнения примитивных типов данных (int
, double
, так далее.).Если вы используете ==
для сравнения двух типов объектов (например, строк), вы сравниваете их для identity , то есть проверяете, ссылаются ли они на один и тот же объект в памяти.В вашем случае вам нужно сравнить, если они равны : если они имеют одно и то же значение (в данном случае строку символов), даже если это два разных объекта - и для этогоВы должны использовать метод equals()
.
РЕДАКТИРОВАТЬ:
Еще лучше, для предотвращения NullPointerException
, считается хорошей практикой перевернуть порядок сравненияи сначала напишите строку, с которой вы сравниваете, например:
if ("yes".equals(answer))
Объяснение простое: если по какой-то причине answer
равно null
, приведенное выше сравнение оценивается как false
(значение: answer
не равно "yes"
), тогда как первая версия кода вызовет NullPointerException
при попытке вызвать метод equals()
для значения null
.