java no pilla String

Iniciado por MrDev, 13 Febrero 2016, 18:52 PM

0 Miembros y 1 Visitante están viendo este tema.

MrDev

Pues eso, pido la operacion y al introducirla se para la aplicacion, no entiendo por que.

Código (java) [Seleccionar]
System.out.println("¿Qué quieres hacer? (retiro/deposito)");
accion = entrada.next();
if(accion=="retiro"){
if(cuenta1.getSaldo()<0){
System.err.println("No puede realizar la operacion.");
}
else{
System.out.println("¿Cuanto quiere retirar?");
saldo= entrada.nextInt();
cuenta1.setSaldo(saldo);
System.out.println("Su accion: "+accion+", Saldo: "+cuenta1.getSaldo());
}
}


MrDev

Vale, para comparar String hay que usar equals.
solucion: if(accion.equals("retiro")){

0xFer

Para comparar objetos de tipo primitivo( int,char,boolean,double) se usa "==", pero String no es un tipo primitivo, es de un tipo objeto y el operador "==" no está definido para las variables de tipo Objeto, para compararlos se usan métodos adicionales y es el programador de la clase del objeto quien decide los criterios para decidir si un objeto es igual o diferente a otro objeto. Por ejemplo el método equals de String compara todos los caracteres del String y si todos son iguales devuelve true eso lo puedes ver en el código fuente del método, y tú puedes crear tus propias clases e implementar métodos para comparar objetos de esa clase.
Código (java) [Seleccionar]
int getRandomNumber(){
    return 4; //chosen by fair dice roll
              //guaranteed to be random
}

MrDev