Java - Меню не запускает опциональный цикл после выбора пользователя (без ошибок компиляции) - PullRequest
0 голосов
/ 05 октября 2019

Я посмотрел документацию по этому вопросу и некоторые примеры, но мне кажется, что я понял, почему программа не работает, как задумано.

Мне нужно составить программу с 6 вариантами выбора, я использую класс Clavier.class, который является школьным и одобренным классом для чтения записей пользователя.

Так что стоимость проезда была только первойвариант, но при тестировании программы, если ввод равен 1, он не идет на 1-й цикл, программа останавливается только после распечатки ввода пользователя.

Вот код, который пока (на французском):

public class Facturation {
    public static void main (String [] args) {

char Choix ;
int random;
final String MSG_PRESENTATION = "Programme de facturation a la minute pour"
+ "\n" + "la location de vehicules electriques. ";
final String MENU = "----" 
+ "\n" + "MENU" 
+ "\n" + "----"
+ "\n" + "1. Louer un vehicule"
+ "\n" + "2. Facturer la remise d'un vehicule"
+ "\n" + "3. Annuler une location"
+ "\n" + "4. Afficher le montant des recettes"
+ "\n"+ "5. Reinitialiser le montant des recettes"
+ "\n" + "6. Quitter le programme"
+ "\n" + "\n"+ "Entrez votre choix";
final String MSG1 = "LOCATION" ;
final String NOCAR1 = "Il n'y a plus de véhicules disponibles.";

System.out.println (MSG_PRESENTATION);
System.out.print (MENU + "\n") ;
Choix = Clavier.lireChar();

     while (Choix >=1 && Choix <=6) ;
     {
     if (Choix == 1) { 
        System.out.println(MSG1);
        double randomDouble = Math.random();
    randomDouble = randomDouble * 4 + 1;
    int randomInt = (int) randomDouble;
    System.out.println(randomInt);

    }

}
}
}

Первый вариант генерирует число от 1 до 4. Я знаю, что проблема не в генераторе чисел, так как я пробовал его в отдельном классе, и он работал. Код компилируется. Я попытался с выключателем / случаем, и это не решило проблему. Меню будет отображаться только в начале, и как только пользователь введет «1», программа выведет 1 и остановится.

Спасибо.

Ответы [ 2 ]

0 голосов
/ 05 октября 2019

Я изменил и для int, и теперь столкнулся с ошибкой компиляции. Я добавил номер 2 и использовал переключатель:


   public class Facturation {
       public static void main (String [] args) {

   int Choixmenu ;
   int random;
   final String MSG_PRESENTATION = "Programme de facturation a la minute pour"
   + "\n" + "la location de vehicules electriques. ";
   final String MENU = "----" 
   + "\n" + "MENU" 
   + "\n" + "----"
   + "\n" + "1. Louer un vehicule"
   + "\n" + "2. Facturer la remise d'un vehicule"
   + "\n" + "3. Annuler une location"
   + "\n" + "4. Afficher le montant des recettes"
   + "\n"+ "5. Reinitialiser le montant des recettes"
   + "\n" + "6. Quitter le programme"
   + "\n" + "\n"+ "Entrez votre choix";
   final String MSG_ERREUR = "Ceci n'est pas une entree valide.";
   final String MSG1 = "LOCATION" ;
   final String NOCAR1 = "Il n'y a plus de véhicules disponibles.";
   final String MSG2 = " Entrer le numero du vehicule retourne" ;
   System.out.println (MSG_PRESENTATION);
   System.out.print (MENU + "\n") ;
   int Choixmenu = Clavier.lireInt();

        Switch (Choixmenu) {
        case 1:  
           System.out.println(MSG1);
           double randomDouble = Math.random();
       randomDouble = randomDouble * 4 + 1;
       int randomInt = (int) randomDouble;
       System.out.println(randomInt);
       break;
        case 2:
       System.out.println(MSG2);
       break;
       default:
       System.out.println (MSG_ERREUR);
       break;

       }

   }
   }


0 голосов
/ 05 октября 2019

Проблема здесь в том, что вы получаете выбор в качестве символа и сравниваете его с ожидаемыми значениями типа int. Просто преобразуйте choix char в его числовое значение перед использованием в сравнении.

int choixNumeric = Character.getNumericValue(Clavier.lireChar());

Преобразование символов в целые числа в Java

...