J'ai un problème que mon professeur veut dans l'attente du code et essaie de l'attraper. Protéger avant la mauvaise entrée et j'ai besoin de mettre cela à mon code J'ai quelque chose mais ne fonctionne pas correctement si je mets une lettre comme a, b, c le programme tombera.L'attente en java tombe quand je mets la lettre a b c
package projectprucha;
import java.util.Scanner;
import java.io.*;
import java.util.InputMismatchException;
public class Projectprucha {
public static Scanner scan = new Scanner(System.in);
public static void main(String[] args) {
int Choose;
do {
writeMenu();
Choose = scan.nextInt();
scan.nextLine();
try {
switch (Choose) {
case 1:
Joke vtip = new Joke();
vtip.Napis();
JokeII vtipII = new JokeII();
vtipII.NapisII();
break;
case 2:
Kalkulacka.staticMethod();
break;
case 3:
Moudro rada = new Moudro();
rada.Rekni();
case 0:
System.out.println("You have exited the system");
System.exit(0);
default:
throw new InputMismatchException();
}
} catch (InputMismatchException e) {
System.out.println("Error in the data you have entered please try again");
}
} while (Choose != 0);
}
private static void writeMenu() {
System.out.println("Menu");
System.out.println("1: Něco pro zasmání");
System.out.println("2: Kalkulačka");
System.out.println("3: Rada do života");
System.out.println("0: Ukončit program");
}
}
vous pouvez obtenir l'entrée comme une chaîne ('balayage .next() '), vérifie si c'est un nombre (par exemple avec une expression régulière) et le convertit ensuite en un nombre –
l'exception sera lancée par' scan.nextInt() 'de sorte que vous devriez déplacer cette ligne (et ce qui suit) dans le bloc 'try' –