@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 - его специально придумали для таких случаев.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
Bell Integrator Ульяновск
До 400 000 ₽
Bell Integrator Ижевск
До 400 000 ₽
Bell Integrator Хабаровск
До 400 000 ₽
29 мар. 2024, в 18:29
100000 руб./за проект
29 мар. 2024, в 18:23
50000 руб./за проект
29 мар. 2024, в 18:08
2500 руб./за проект