Задать вопрос
@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

Введите любой символ:
Введите любой символ:
Введите любой символ:
  • Вопрос задан
  • 119 просмотров
Подписаться 1 Простой 1 комментарий
Помогут разобраться в теме Все курсы
  • Нетология
    Java-разработчик с нуля
    12 месяцев
    Далее
  • Skillfactory
    Профессия Java-разработчик
    14 месяцев
    Далее
  • Академия Eduson
    Java-разработчик
    8 месяцев
    Далее
Решения вопроса 1
Beshere
@Beshere
Разработчик
Мне кажется, ошибка здесь

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

Попробуйте

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

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

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

Похожие вопросы