Вопрос крайне простой.
Я хочу сделать так, чтобы программа не останавливалась пока загаданная буква не будет угадана.
Почему нижеследующий код выводит несколько строк
"Угадайте букву от A-Z: ", вместо одной?
public class HelloWorld {
public static void main(String[] args)
throws java.io.IOException {
char ch;
do {
System.out.print("Угадайте букву от A-Z: ");
ch = (char) System.in.read(); //считываем символ
} while (ch != 'Q');
}
}
Результат программы:
Угадайте букву от A-Z: f
Угадайте букву от A-Z: Угадайте букву от A-Z: Q <- две строки почему-то
Странность заключается в том, что абсолютно аналогичный пример работает. Хотелось бы детального разбора.
Второй пример:
public class HelloWorld {
public static void main(String[] args)
throws java.io.IOException {
char ch, ignore, answer = 'K';
do {
System.out.println("Загадана буква от A-Z");
System.out.print("...попробуйте ее угадать ");
ch = (char) System.in.read();
do {
ignore = (char) System.in.read();
} while (ignore != '\n');
if (ch == answer) System.out.println("***right***");
else {
System.out.println("Извините, не правильно :(");
if (ch < answer) System.out.println("Буква ближе к концу алфавита");
else System.out.println("Буква ближе к началу алфавита");
}
} while (answer != ch);
}
}