Java - No funciona mi if que está dentro de un arreglo

 
Vista:

No funciona mi if que está dentro de un arreglo

Publicado por Anonimatum (2 intervenciones) el 27/05/2022 02:54:59
Scanner entrada=new Scanner (System.in) ;

String [] empresa=new String[5];
String [] material=new String[3];
int [] toneladas=new int[5];
int i=0;
double valor[]=new double[3];

for(i=0;i<5;i++) {

System.out.println("Digite la letra de su empresa a,b,c"
+ ",d ó e EN MINÚSCULAS");
empresa[i]=entrada.next();

switch(empresa[i]) {
case "a":
System.out.println("Digite la cantidad de toneladas producidas");
toneladas[i]=entrada.nextInt();

for(i=0;i<3;i++) {

System.out.println("Escriba el tipo de material: papel, vidrio ó "
+ "plastico EN MINÚSCULAS Y SIN TÍLDES");
material[i]=entrada.next();

if(material[i]=="vidrio") {
valor[i]=(95*toneladas[i])/100;
System.out.println("La empresa recicla "
+valor[i]+" toneladas de vidrio");
}
else if(material[i]=="plastico") {
valor[i]=(10*toneladas[i])/100;
System.out.println("La empresa recicla "
+valor[i]+" toneladas de plástico");
}
else if(material[i]=="papel") {
valor[i]=(80*toneladas[i])/100;
System.out.println("La empresa recicla "
+valor[i]+" toneladas de papel");
}
else {
valor[i]=0;
System.out.println("No Aplica");
}
}
break;

}

}
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
Imágen de perfil de Kabuto
Val: 3.428
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

No funciona mi if que está dentro de un arreglo

Publicado por Kabuto (1381 intervenciones) el 27/05/2022 17:47:55
Hola.
Para comparar Strings ( o cualquier otro objeto de clase), nunca uses el operador ==.
Este operador solo funciona correctamente con tipos primitivos: char, int, double, boolean,...

Pero String es un objeto de clase, en cuyo caso se han de comparar invocando al método equals()

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
if(material[i].equals("vidrio")) {
						valor[i]=(95*toneladas[i])/100;
						System.out.println("La empresa recicla "
								+valor[i]+" toneladas de vidrio");
					}
					else if(material[i].equals("plastico")) {
						valor[i]=(10*toneladas[i])/100;
						System.out.println("La empresa recicla "
								+valor[i]+" toneladas de plástico");
					}
					else if(material[i].equals("papel")) {
						valor[i]=(80*toneladas[i])/100;
						System.out.println("La empresa recicla "
								+valor[i]+" toneladas de papel");
					}
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