@AlexKost5
Front-end Developer

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

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

class Point {
    public static void main(String args[])
        throws java.io.IOException {
        char choice;
        int count;

        count = 0;

        do {
            System.out.print("Введите любой символ: ");
            choice = (char) System.in.read();
            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
Введите любой символ: .

Введите любой символ:
Введите любой символ:
Введите любой символ: q

Введите любой символ:
Введите любой символ:
Введите любой символ:
  • Вопрос задан
  • 116 просмотров
Решения вопроса 1
Beshere
@Beshere
Разработчик
Мне кажется, ошибка здесь

while (choice != '.' | choice != 'q');

Попробуйте

while (choice != '.' && choice != 'q');

P.S. И на будущее используйте класс Scanner - его специально придумали для таких случаев.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы