Ayuda!!!método booleano SI/NO
Bueno creo que es mi duda es bastante chorra compara con el nivel que haypor aquÃ, pero bueno no consigo resolver lo que me pasa. LA idea es hace un metodo, que le paso un pregunta que es respondida con SI O NO (ya se que es un poco cochino esos if con No no NO nO XD pero no se me ocurre otra forma) pero es caso es que el método me peta, no entra en el IF parece ser y siempre pues me pregunta una y otra vez porque el marcador no ha cambiado de valor, os dejo el códido a ver si véis el fallo o alguna manera de mejor de hacerla porque lo necesito pero yaaa!! :( bueno muchas gracias por todo
import java.io.*;
public class pruebecitas {
public static void main (String[] arg){
boolean prova=false;
prova=questBoolean("contesta la pregunta hediondo");
System.out.println(prova);
}
/*Metodo que devuelve un valor booleano, es decir un SI o NO*/ //versión cochina//
public static boolean questBoolean (String frase) {
String inbole="-1"; boolean indevolver = false;
boolean marcador = false;
do{
System.out.println(frase);
try {
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
inbole = in.readLine();
}
catch(IOException e) {}
System.out.println(inbole);//PRUEBA//
if((inbole=="si")||(inbole=="SI")||(inbole=="Si")||(inbole=="sI")){
indevolver=true;marcador=true;
System.out.println(inbole + indevolver + marcador);//PRUEBA//
}else{
if((inbole=="no")||(inbole=="NO")||(inbole=="No")||(inbole=="nO")){
indevolver=false;marcador=true;
}
}
}while(marcador==false);
return indevolver;
}
}
import java.io.*;
public class pruebecitas {
public static void main (String[] arg){
boolean prova=false;
prova=questBoolean("contesta la pregunta hediondo");
System.out.println(prova);
}
/*Metodo que devuelve un valor booleano, es decir un SI o NO*/ //versión cochina//
public static boolean questBoolean (String frase) {
String inbole="-1"; boolean indevolver = false;
boolean marcador = false;
do{
System.out.println(frase);
try {
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
inbole = in.readLine();
}
catch(IOException e) {}
System.out.println(inbole);//PRUEBA//
if((inbole=="si")||(inbole=="SI")||(inbole=="Si")||(inbole=="sI")){
indevolver=true;marcador=true;
System.out.println(inbole + indevolver + marcador);//PRUEBA//
}else{
if((inbole=="no")||(inbole=="NO")||(inbole=="No")||(inbole=="nO")){
indevolver=false;marcador=true;
}
}
}while(marcador==false);
return indevolver;
}
}
es un error muy comun hacer este tipo de comparaciones entre cadenas
if(cadena == cadena2) //aqui preguntas si un objeto es igual al otro
la clase String proporciona dos métodos para hacer comparaciones entre cadenas, equals y compareTo
lo que debes hacer es:
if(cadena.compareTo(cadena2) == 0) // haces true
o bien
if(cadena.equals(cadena2)) //tambien haces true
if(cadena == cadena2) //aqui preguntas si un objeto es igual al otro
la clase String proporciona dos métodos para hacer comparaciones entre cadenas, equals y compareTo
lo que debes hacer es:
if(cadena.compareTo(cadena2) == 0) // haces true
o bien
if(cadena.equals(cadena2)) //tambien haces true