Es por que nextInt() solo consume los números y no el \n del final de cadenada. Entonces cuando corres nextLine() te da una cadena vacía.
Hay varias formas de arreglar esto:
1. Leer solamente lineas y después convertirlo a int.
2. Revisar si el string esta vació entonces tomar una decisión predeterminada.
3. Agregar un nextLine() para consumir el \n
Ya que tengo algo de prisa te dejo la tercera opción.
Código Java:
Ver originalimport java.util.Scanner;
public class Main {
public static void main
(String[] args
) { int x, y, resultado=0;
char letra;
Scanner scan
= new Scanner
(System.
in);
do{
System.
out.
println("Ingrese dos numeros:"); x = scan.nextInt();
y = scan.nextInt();
scan.nextLine();
do{
System.
out.
println("Seleccione la operacion a realizar:"); System.
out.
println("(S)umar"); System.
out.
println("(R)estar"); System.
out.
println("(M)ultiplicar"); System.
out.
println("(D)ividir"); letra = scan.nextLine().toUpperCase().charAt(0);
switch (letra){
case 'S':
resultado = x+y;
break;
case 'R':
resultado = x-y;
break;
case 'M':
resultado = x*y;
break;
case 'D':
if (y==0){
System.
out.
println("No existe la divicion por cero"); }
resultado = x/y;
default:
System.
out.
println("Ingrese la opcion correcta:"); }
}while (!(letra == 'S' || letra == 'R' || letra == 'M' || letra == 'D'));
System.
out.
println("¿Desea realizar otra opracion?"); letra = scan.nextLine().toUpperCase().charAt(0);
}while (letra=='S');
}
}