если оператор не работает после выхода из оператора - PullRequest
0 голосов
/ 06 февраля 2020

Так что после выхода из моего l oop мое последнее утверждение if по какой-то причине не разрешается, это может быть просто глупой ошибкой, но я не могу ее найти.

вот код, о котором идет речь. я удалил часть текста, которая была просто текстом, чтобы сделать код короче.

public class Prototype_SAAQ {
    public static void main(String[] args) {
        char sex;
        int nbHommes;
        int nbFemmes;
        int ageFemmes;
        int ageHommes;
        int ageMoyenHomme;
        int ageMoyenFemme;
        char options;
        int vitesseMax;
        int vitesseRadar;
        int vitesseTotal;
        int totalPoints;
        int nbInfractions;

        System.out.println("Ce programme est un PROTOTYPE pour la gestion des infractions du code de la route");
        System.out.println("OPTION");
        System.out.println("s/S - Exces de vitesse dans une zone de 60km/h ou moins");
        System.out.println("z/Z - Depassements successifs en zigzag ");
        System.out.println("t/T - Conduite en faisant usage d'un appareil muni d'une fonction telephonique");
        System.out.println("c/C - Conduite pour un pari, un enjeu ou une course");
        System.out.println("d/D - Distance imprudente entre les vehicules");
        System.out.println("q/Q - Quitter le programme");
        System.out.println("Entrez votre choix: ");
        options = Clavier.lireChar();

        totalPoints = 0;
        nbHommes = 0;
        nbFemmes = 0;
        ageMoyenHomme = 0;
        ageMoyenFemme = 0;
        nbInfractions = 0;
        while (options != ('q') || options != ('Q')) {
            if (options == ('s') || options == ('S')) {

                System.out.println("OPTION");
                System.out.println("s/S - Exces de vitesse dans une zone de 60km/h ou moins");
                System.out.println("z/Z - Depassements successifs en zigzag");
                System.out.println("t/T - Conduite en faisant usage d'un appareil muni d'une fonction telephonique");
                System.out.println("c/C - Conduite pour un pari, un enjeu ou une course");
                System.out.println("d/D - Distance imprudente entre les vehicules");
                System.out.println("q/Q - Quitter le programme");
                System.out.println("Entrez votre choix: ");
                options = Clavier.lireChar();
            }
            if (options == ('z') || options == ('Z')) {
                System.out.println("Depassements successifs en zigzag");
                System.out.println("OPTION");
                System.out.println("s/S - Exces de vitesse dans une zone de 60km/h ou moins");
                System.out.println("z/Z - Depassements successifs en zigzag");
                System.out.println("t/T - Conduite en faisant usage d'un appareil muni d'une fonction telephonique");
                System.out.println("c/C - Conduite pour un pari, un enjeu ou une course");
                System.out.println("d/D - Distance imprudente entre les vehicules");
                System.out.println("q/Q - Quitter le programme");
                System.out.println("Entrez votre choix: ");
                options = Clavier.lireChar();
            }
            if (options == ('t') || options == ('T')) {
                System.out.println("Conduite en faisant usage d'un appareil muni d'une fonction téléphonique");
                System.out.println("OPTION");
                System.out.println("s/S - Exces de vitesse dans une zone de 60km/h ou moins");
                System.out.println("z/Z - Depassements successifs en zigzag");
                System.out.println("t/T - Conduite en faisant usage d'un appareil muni d'une fonction telephonique");
                System.out.println("c/C - Conduite pour un pari, un enjeu ou une course");
                System.out.println("d/D - Distance imprudente entre les vehicules");
                System.out.println("q/Q - Quitter le programme");
                System.out.println("Entrez votre choix: ");
                options = Clavier.lireChar();
            }
            if (options == ('c') || options == ('C')) {
                System.out.println("Conduite pour un pari, un enjeu ou une course");
                System.out.println("OPTION");
                System.out.println("s/S - Exces de vitesse dans une zone de 60km/h ou moins");
                System.out.println("z/Z - Depassements successifs en zigzag");
                System.out.println("t/T - Conduite en faisant usage d'un appareil muni d'une fonction telephonique");
                System.out.println("c/C - Conduite pour un pari, un enjeu ou une course");
                System.out.println("d/D - Distance imprudente entre les vehicules");
                System.out.println("q/Q - Quitter le programme");
                System.out.println("Entrez votre choix: ");
                options = Clavier.lireChar();
            }
            if (options == ('d') || options == ('D')) {
                System.out.println("Distance imprudente entre les vehicules");
                System.out.println("OPTION");
                System.out.println("s/S - Exces de vitesse dans une zone de 60km/h ou moins");
                System.out.println("z/Z - Depassements successifs en zigzag");
                System.out.println("t/T - Conduite en faisant usage d'un appareil muni d'une fonction telephonique");
                System.out.println("c/C - Conduite pour un pari, un enjeu ou une course");
                System.out.println("d/D - Distance imprudente entre les vehicules");
                System.out.println("q/Q - Quitter le programme");
                System.out.println("Entrez votre choix: ");
                options = Clavier.lireChar();
            }
        }
        if (options == ('q') || options == ('Q')) {
            System.out.println("Nombres d'infractions: " + nbInfractions);
        }
    }
}

1 Ответ

1 голос
/ 06 февраля 2020

Вы запрограммировали бесконечный l oop:

while (options != ('q') || options != ('Q')) { ... }

Символ не может быть одновременно «q» и «Q». Я полагаю, вы хотели написать:

while (! (options=='q' || options=='Q') ) {...}
...