Регистрация
24 Дек 2013
Сообщения
87
Репутация
-3
Спасибо
0
Монет
0
Хотел написать игру отгадай загадку. Проблема в том я не знаю где моя ошибка В консоли на загадку отвечаю правильно а она пишет что неправильно. Помогите найти ошибку вот код
Код при правильном вводе загадки пишет неправильно, где я ошибся?
String userAnswer;
int i = 0;
System.out.println("Отгадайте 3 загадки ");
System.out.println("1. Кто ходит сидя? ");
Scanner sc = new Scanner(System.in);
userAnswer = sc.nextLine();
if (userAnswer == "Шахматист") {
System.out.println("Правильно");
i++;
}
else
System.out.println("Неправильно");
System.out.println("У всех она есть, но никто не сможет её отнять");
userAnswer = sc.nextLine();
if (userAnswer == "Тень"){
System.out.println("Правильно");
i++;
}
else
System.out.println("Неправильно");
System.out.println("Когда работает стоит, без работы висит, после работы мокрый. Что это?");
userAnswer = sc.nextLine();
if (userAnswer == "Зонт"){
System.out.println("Правильно");
i++;
}
else
System.out.println("Неправильно");
System.out.println("Вы угадали " + i + " загадок");
 
Вы думаете, что сравниваете строки на совпадение, а на самом деле, сравниваете адреса java выдаст равно только для одной и той же строки. Когда одно и то же лежит в разных переменных, то для javы это разные строки. Сравнивать надо содержание. Есть несколько способов, самый простой - пишите вместо if (userAnswer == "Тень")так : if (userAnswer.equals( "Тень")). Не разочаровывайтесь! Это не единственный идиотизм в javе! Американские хакеры хотели взломать чё-нить в РФ, а получилось, что установили себе Amigo.
 
Назад
Сверху