Почему программа на Java работает неправильно?

223
07 ноября 2018, 17:10

Я написал простенькую программу, которая должна просить ввести 1 символ, пока не будет введена точка. Если точка введена, то отображается количество нажатий Enter (то есть количество попыток для того, чтобы угадать символ). Если пользователь вводит "q", то программа завершает свою работу.

import java.util.Scanner;     
class Main {
        public static void main(String args[])
      throws java.io.IOException {
        Scanner scanner = new Scanner(System.in);
            char choice;
            int count = 0;
            do {
                System.out.print("Введите любой символ: ");
                choice = scanner.next().charAt(0);
                System.out.println();
                count++;
            } while (choice != '.' && choice != 'q');
            switch(choice) {
                case '.':
                    System.out.println("Вы нажали Enter " + count + " раз.");
                    break;
                case 'q':
                    break;
            }
        }
    }

При выполнении программа работает неправильно, запрашивая по три раза ввод символа. До сих пор не могу понять в чем дело.

C:\Users\Alex\Desktop\Projects\Point>java Point
Введите любой символ: f
Введите любой символ:
Введите любой символ:
Введите любой символ: h
Введите любой символ:
Введите любой символ:
Введите любой символ: k
Введите любой символ:
Введите любой символ:
Введите любой символ: .
Вы нажали Enter 10 раз.
C:\Users\Alex\Desktop\Projects\Point>
Answer 1

Всё корректно у меня работает. Перезагрузите компьютер, нажмите Build ->Rebuild project. Вот лог:

Введите любой символ: h
Введите любой символ: h
Введите любой символ: d
Введите любой символ: j
Введите любой символ: t
Введите любой символ: r
Введите любой символ: e
Введите любой символ: y
Введите любой символ: r

Попробуйте онлайн компилятор java

READ ALSO
Упаковка стандартных байтов(8 бит) в 6 бит

Упаковка стандартных байтов(8 бит) в 6 бит

На вход поступает какой-то файл (не важно какой)Мне необходимо упаковать 8-битные байты в 6-битные

162
Отрисовка переданного Sprite

Отрисовка переданного Sprite

Есть два класса, назовем их txtManager и актер ObjtxtManager создает и отдает спрайт:

174
Взятие id из GET запроса

Взятие id из GET запроса

Есть GET http://localhost:8088/property/123

174