Ver Mensaje Individual
  #2 (permalink)  
Antiguo 16/06/2013, 13:14
Avatar de razpeitia
razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 1 mes
Puntos: 1360
Respuesta: problema con "Exception in thread "main"..."

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 original
  1. import java.util.Scanner;
  2.  
  3. public class Main {
  4.  
  5.     public static void main(String[] args) {
  6.         int x, y, resultado=0;
  7.         char letra;
  8.          
  9.         Scanner scan = new Scanner(System.in);
  10.  
  11.         do{
  12.             System.out.println("Ingrese dos numeros:");
  13.             x = scan.nextInt();
  14.             y = scan.nextInt();
  15.             scan.nextLine();
  16.              
  17.           do{
  18.             System.out.println("Seleccione la operacion a realizar:");
  19.             System.out.println("(S)umar");
  20.             System.out.println("(R)estar");
  21.             System.out.println("(M)ultiplicar");
  22.             System.out.println("(D)ividir");
  23.             letra = scan.nextLine().toUpperCase().charAt(0);
  24.             switch (letra){
  25.                 case 'S':
  26.                     resultado = x+y;
  27.                     break;
  28.                 case 'R':
  29.                     resultado = x-y;
  30.                     break;
  31.                 case 'M':
  32.                     resultado = x*y;
  33.                     break;
  34.                 case 'D':
  35.                     if (y==0){
  36.                         System.out.println("No existe la divicion por cero");
  37.                     }
  38.                     resultado = x/y;
  39.                 default:  
  40.                     System.out.println("Ingrese la opcion correcta:");
  41.             }
  42.             }while (!(letra == 'S' || letra == 'R' || letra == 'M' || letra == 'D'));
  43.            
  44.           System.out.println("¿Desea realizar otra opracion?");
  45.           System.out.println("(S)i");
  46.           System.out.println("(N)o");
  47.           letra = scan.nextLine().toUpperCase().charAt(0);
  48.            
  49.        }while (letra=='S');
  50.     }
  51. }