Commutateur / Cas console menu en Java
Sup, tout le monde. J'ai eu un problème avec le menu switch/case en Java.
class ConsoleMenu{
ConsoleMenu(){
}
void ShowMenu(){
System.out.println(1);
System.out.println(2);
System.out.println(3);
}
}
public class Main {
public static void main(String[] args) throws java.io.IOException {
ConsoleMenu cs = new ConsoleMenu();
char ch;
do {
cs.ShowMenu();
ch = (char) System.in.read();
switch (ch) {
case '1':{
System.out.println("228");
break;}
case '2':{
System.out.println("556");
break;}
}
} while (ch != '0');
}
}
Quand je fais un choix, il fait quelque chose comme ça:
1
2
1
228
1
2
1
2
2
556
1
2
1
2
Donc je ne peux pas undestand pourquoi Java me montre le menu deux fois après avoir terminé le cas. Toutes les suggestions?
0
1 answers
Cette ligne lit chaque caractère que vous tapez, y compris la nouvelle ligne '\n'
lorsque vous appuyez sur Entrée
ch = (char) System.in.read();
Une solution simple serait de faire une autre lecture et de rejeter le résultat. Par exemple
do {
cs.ShowMenu();
ch = (char) System.in.read();
switch (ch) {
case '1': {
System.out.println("228");
break;
}
case '2': {
System.out.println("556");
break;
}
}
System.in.read();
} while (ch != '0');
1
Author: Manos Nikolaidis, 2015-11-04 22:32:48