Cabina

2 views
Skip to first unread message

jhon galvis

unread,
Oct 31, 2013, 10:42:59 AM10/31/13
to fundamentospro...@googlegroups.com
Buenos días Ingeniero, aquí esta el código de la cabina telefónica, el mensaje que usted me mando para validar que en la pregunta los minutos que gasto no se acepten no letras no me funciona empieza a correr pero no termina.Gracias.

public String cabina(){
         
    String preguntar = ""; 
    String tipoLlamada = "";
    int calcularNacional = 0;
    int calcularLocal = 0;
    String preguntarMinutosNacional = "";
    String preguntarMinutosLocal = "";
    int enteroMinutosNacional = 0;
    int enteroMinutosLocal = 0;
    String mensaje = "";
    int gananciaTotal = 0;
    int acumuladorNacional = 0;
    int acumuladorLocal = 0;
    boolean retorno = false;
    do{
    
       preguntar = JOptionPane.showInputDialog("¿Desea hacer una llamada?");
       
        if(preguntar.equals("si")){
            tipoLlamada = JOptionPane.showInputDialog("¿Su llamada es nacional o local?");
        
             if(tipoLlamada.equals("nacional")){
                
                preguntarMinutosNacional = JOptionPane.showInputDialog("¿Cuantos minutos gasto?");
                try {
                    Integer.parseInt(preguntarMinutosNacional);
                    retorno = true;
                } catch (NumberFormatException nfe){
                    retorno = false;
                    mensaje = "Ingrese solo numeros"; 
                }
                if(retorno==true){
                    enteroMinutosNacional = Integer.parseInt(preguntarMinutosNacional);
                    calcularNacional = 100*enteroMinutosNacional;
                    acumuladorNacional += calcularNacional;
                    mensaje = "Debe pagar: "+calcularNacional;
                    System.out.println(mensaje);
                }
                }
             if(tipoLlamada.equals("local")){
                
                preguntarMinutosLocal = JOptionPane.showInputDialog("¿Cuantos minutos gasto?");
                if(retorno==true){
                    enteroMinutosLocal = Integer.parseInt(preguntarMinutosLocal);
                    calcularLocal = 10*enteroMinutosLocal;
                    acumuladorLocal += calcularLocal; 
                    mensaje = "Debe pagar: "+calcularLocal;
                    System.out.println(mensaje);
               
                }
                
             }
    }while(preguntar.equals("si"));
    
    if(preguntar.equals("no")){
       gananciaTotal = acumuladorNacional+acumuladorLocal;
       mensaje = "El programa se cerro su ganancia total es: "+gananciaTotal;
    }
        
    if(!preguntar.equals("si") && !preguntar.equals("no")){
      mensaje = "Ingrese si o no"; 
    } 

   }while(preguntar.equals("si"));  
   return mensaje;
  }

boris...@ufps.edu.co

unread,
Oct 31, 2013, 12:24:03 PM10/31/13
to fundamentospro...@googlegroups.com
Buenos días Jhon.

El problema con el código es más complicado, porque estás usando un while sin un do, y al final usas otro while. En otras palabras está bastante enredada la parte del ciclo. 

Le comparto el código corregido:


Vemos.
Reply all
Reply to author
Forward
0 new messages