Buscar
Social
Ofertas laborales ES

Foro sobre Java SE > If no reconoce variable

Hola!!!

Soy nuevo en este mundillo de java e hice una proceso if pero siempre reconoce el valor false del IF, para simplificarme el asunto hice un temporal con el puro codigo del IF y sigue haciendo lo mismo... el valor de la variable se introduce por consola y queda algo así

import java.io.IOException;
import java.util.Scanner;

public class Temp {

public static void main(String[] args) throws IOException {

String dato = null;
Scanner nombre = new Scanner(System.in);

System.out.print("Ingrese nombre: ");
dato = nombre.nextLine();
nombre.close();

System.out.println(dato); //Salida para verificar valor en variable

if (dato == "Pedro"){
System.out.println("Es Pedro");
}else{
System.out.println("No es Pedro");
}
}
}

la salida que me da es esta:

Ingrese nombre: Pedro
Pedro // valor q toma la variable
No es Pedro

Como pueden ver la variable si carga el valor "Pedro" pero el IF no lo reconoce y ejecuta siempre la instrucción del ELSE.

Gracias de antemano por su tiempo!!

Saludos!!!

mayo 1, 2015 | Unregistered CommenterRoberto

Las cadenas, como cualquier instancia de una clase, no se deben comparar con == sino con el método equals
Con == se comparan las referencias de las instancias, no su contenido.

if("Pedro".equals(dato)) // es la manera más correcta de comparar sus contenidos.

mayo 1, 2015 | Registered Commenterchoces

Muchas gracias!!!!

mayo 1, 2015 | Unregistered CommenterRoberto