Faites - en boucle avec des conditions en utilisant Char (Java)

maddie pattie c:

Donc, je travaille sur ce projet d'arbre d'énergie pour ma classe de programmation informatique, je tentais de faire une boucle do-while qui a demandé à l'utilisateur si elles étaient un producteur ou consommateur et si une autre boucle est entré dans l'entrée recommencerait. Mon code ne cesse de se l'erreur

"java.util.NoSuchElementException" on line 45 

Où il est dit

char Type = ProducerOrConsumer.nextLine().toUpperCase().charAt(0);


        boolean isChoiceValid = false;

        do
        {
            PETCScanner.close();
            Scanner ProducerOrConsumer = new Scanner(System.in);

            System.out.println("Are you a Producer or a Consumer?\\\\n (P = Producer, C = Consumer");
            char Type = ProducerOrConsumer.nextLine().toUpperCase().charAt(0);
            if (Type == 'P' || Type =='C')
            {


            }
            else 
                System.out.println("Sorry try Again");
            {

            }
            String Name = ProducerOrConsumer.nextLine().toUpperCase();

            System.out.println(Name);


        }while(isChoiceValid == (true));
        System.out.println("You're Done!");


    }
cricket_007:

Il semble que vous fermez un scanner, qui ferme toutes les ressources attachées . Lorsque vous essayez de lire à nouveau, vous avez « pas un tel élément » à lire.

Vous avez seulement besoin d'un scanner par application, il n'y a pas besoin de recréer un aussi.

Scanner sc = new Scanner(System.in);
boolean isChoiceValid = false;
do {
     System.out.println("Are you a Producer or a Consumer?\\\\n (P = Producer, C = Consumer");
    char type = sc.nextLine().toUpperCase().charAt(0);
    if (type == 'P' || type =='C') {
        boolean isChoiceValid = true;
    } else {
        System.out.println("Sorry try Again");
        isValidChoice = false;  // if you want
        continue;
    }
    if (sc.hasNextLine()) {
        String name = sc.nextLine().toUpperCase();
        System.out.println(name);
    }
} while(!isChoiceValid);
System.out.println("You're Done!");

Je suppose que tu aimes

Origine http://43.154.161.224:23101/article/api/json?id=363915&siteId=1
conseillé
Classement