Java - Ayuda! Programa sencillo

   
Vista:

Ayuda! Programa sencillo

Publicado por Belamy (1 intervención) el 16/09/2013 18:45:19
Hola a todos,soy nuevo aqi y estoy llevando el curso de POO,me dejaron un problema y puxa no sé cual es mi error,ya que apenas hago una iteracion en el while,de frente me cierra la ejecucuion y deberia segir para introducir mas datos

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
package PROBLEMA;
 
 
public class NroFallas {
     int numero=0;
 
 
 
    public int Total(int contA,int contB,int contC){
 
        numero=contA+contB+contC;
        return numero;
    }
 
    public String Estadisticas(int contA,int contB,int contC){
    return "Porcentaje Tipo A: "+Double.toString(contA*100/numero)+"%"+"\n"+
            "Porcentaje Tipo B: "+Double.toString(contB*100/numero)+"%"+"\n"+
            "Porcentaje Tipo C: "+Double.toString(contC*100/numero)+"%"+"\n";
    }
}
 
package PROBLEMA;
import java.util.Scanner;
import PROBLEMA.NroFallas;
public class main {
    public static void main(String[] args) {
        NroFallas obj=new NroFallas();
        Scanner leer=new Scanner(System.in);
 
 
        String rspta="";
        int contA=0;
        int contB=0;
        int contC=0;
        System.out.println("Ingrese nro fallas:");
        int fallas=leer.nextInt();
 
 
        while(rspta=="N"){
        if(fallas==0){
        contA=contA+1;
        }else{
            if(fallas<=3){
             contB=contB+1;
            }else{
                 contC=contC+1;
            }
        }
            System.out.println("Desea continuar? S/N");
             rspta=leer.next();
            }
 
        System.out.println(obj.Total(contA, contB, contC));
        System.out.println(obj.Estadisticas(contA, contB, contC));
 
}
}

//una duda mas,hace rato al menos corria el programa,y luego cuando cambie de posicion
String rspta=""; y lo puse una linea arriba del while ya no corrio(me salia algo de exception) y luego a pesar de q lo volvi a poner donde estaba antes,ya no corrio mas y me sige saliendo lo de exception
?????
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Ayuda! Programa sencillo

Publicado por UnoPorAhi (128 intervenciones) el 17/09/2013 09:22:52
Buenas,

Las cadenas en java son objetos y no se comparan asi (rspta=="N" ) sino asi (rspta.equals("N")).

Por otro lado, no tiene sentido tratar la respuesta antes de hacer la pregunta. Haz algo como esto:

1
2
3
4
5
6
7
8
9
10
11
12
do {
    if(fallas==0){
        contA=contA+1;
    }else{
    if(fallas<=3){
        contB=contB+1;
    }else{
        contC=contC+1;
    }
    System.out.println("Desea continuar? S/N");
    rspta=leer.next();
} while(rspta.equals("N"));

Un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar