Acepto la entrada del usuario en forma de cadena (que contiene tanto char como int). Estoy dividiendo aún más la cadena en char e int y usando char en la declaración de caso, pero mi declaración de caso me da un bucle infinito. No puedo para saber el error..
public static void main(String[] args) { Scanner sc=new Scanner(System.in); String str=sc.nextLine(); String[] part = str.split("\\s+"); do { switch(part[0]) { case "AB": System.out.println("hi"); int data=Integer.parseInt(part[1]); System.out.println(data); break; case "PR": System.out.println("printining"); break; case "AE": System.out.println("AE"); break; case "EXIT": System.exit(0); break; } } while(true); }
No cambias la part
dentro del ciclo; entonces, a menos que ingrese EXIT inicialmente, seguirá en bucle.
Mueva las dos líneas por encima del bucle en el bucle:
do { String str = sc.nextLine(); String[] part = str.split("\\s+"); // Rest of loop body.
La instrucción break sale del interruptor, no del bucle, ¡y la condición del bucle SIEMPRE es verdadera!