Hola, tengo la siguiente duda: tengo que hacer un main con distintas operaciones, y tengo duda con esta; la cosa es que si el operador ha tecleado la localidad que ocupa el puesto 0, 3 o 6 pregunte: "Escriba un año:" y si el año es el dato que ocupa en la tabla el 0, 1 o 2 que presente unos datos por pantalla, que haré más adelante. (Se supone que las localidades que ocupan los puestos 0-1-2 es una, 3-4-5 es otra y 6-7-8 es otra, y que la tabla se compone de {AÑO,LOCALIDAD,TEMPERATURAS}).
Mi problema es que cuando ejecuto la clase y me pregunta por la localidad, y tecleo cualquier localidad presente en la tabla, me da error, y dice "No hay datos para esa localidad". No se si es error de los operadores lógicos "||" o "&&", o qué...
<pre lang='java'>else if(operacion==2) {
System.out.printf("Escriba el nombre de una localidad: " );
Scanner sc = new Scanner(System.in);
String str = sc.next();
if(str==tablaDatos[0].localidad() || str==tablaDatos[3].localidad() || str==tablaDatos[6].localidad()) {
System.out.printf("Escriba un año: ");
Scanner sr = new Scanner(System.in);
int num = sr.nextInt();
System.out.printf("No hay datos para esa localidadn");
else if {(str!=tablaDatos[0].localidad() && str!=tablaDatos[3].localidad() && str!=tablaDatos[6].localidad()) {
System.out.printf("No hay datos para esa localidadn");
if(num==tablaDatos[0].agno() || num==tablaDatos[1].agno() || num==tablaDatos[2].agno()) {
System.out.printf("No hay datos para este añon");
else if {(num!=tablaDatos[0].agno() && num!=tablaDatos[1].agno() && num!=tablaDatos[2].agno()) {
System.out.printf("Temperaturas medias mensualesn"
+ "%s (%d)n", str, num);
}
}
}
}
A ver si me podéis ayudar, he intentado también esto:
<pre lang='java'>int i=0;
while(tablaDatos[i].localidad()!=str && i<tablaDatos.length-1) i++;
if(tablaDatos[i].localidad()==str) System.out.printf("aaa");
else System.out.printf("sss");
Y SIEMPRE SACA POR PANTALLA "sss". ¿VEIS EL FALLO? AYUDA.