Hola amigos resulta que tengo éste código de un problema de la web aceptaelreto.com y no se como hacer porque cuando los valores leídos sean N, 0 me debe dejar el resultado y continuar el programa y es cuando no haya valores en las variables cuando tengo que salir del programa. Bien yo no se como hacer esto ultimo. Dejo el código fuente tal como lo tengo pero repito lo que me gustaría es salir del programa cuando no se introduzca nada en las variables.
Código Java:
Ver originalimport java.util.Scanner;
public class BarJavierDenuevo {
public static void main
(String[] args
) { Scanner in
= new Scanner
(System.
in); in.
useLocale(java.
util.
Locale.
UK); double [] caja = new double [5] ;
double numero = 0;
double mayor = 0;
double menor = 0;
int empateMayor = 0;
int empateMenor = 0;
double sumaCaja = 0;
String resultadoMayor
= "EMPATE"; String resultadoMenor
= "EMPATE"; int indiceMayor = 0;
int indiceMenor = 0;
double mediaCaja = 0;
//recogo los casos de prueba según condición e introduzco en array
while(!(letra.equals("N")) | (numero!=0)){
letra = in.next();
numero = in.nextDouble();
switch (letra) {
case "D":
caja[0]+= numero;
break;
case "A":
caja[1]+= numero;
break;
case "M":
caja[2]+= numero;
break;
case "I":
caja[3]+= numero;
break;
case "C":
caja[4]+= numero;
break;
}
}
//sumar array par ver dinero total y la media de la caja
for(int i = 0; i<5; i++){
sumaCaja += caja[i];
mediaCaja = sumaCaja/5;
}
// comprobar mayor y menor y sacar sus indices
mayor = caja [0];
menor = caja [0];
for(int i = 1; i<5; i++){
if(caja[i]>mayor){
mayor = caja[i];
indiceMayor = i;
}
else if (caja[i]<menor){
menor=caja[i];
indiceMenor = i;
}
}
// comprobar si hay empate
for(int i = 0; i<5; i++){
if(caja[i]==mayor){
empateMayor += 1;
}
if (caja[i]==menor){
empateMenor += 1;
}
}
// si en mayor no hay empate sacar mayor con los indices sino porner empate
if(empateMayor<=1){
switch (indiceMayor) {
case 0:
resultadoMayor = "DESAYUNOS";
break;
case 1:
resultadoMayor = "COMIDAS";
break;
case 2:
resultadoMayor = "MERIENDAS";
break;
case 3:
resultadoMayor = "CENAS";
break;
case 4:
resultadoMayor = "COPAS";
break;
}
}else{
resultadoMayor = "EMPATE";
}
// si en menor no hay empate sacar menor con los indices sino poner empate
if(empateMenor<=1){
switch (indiceMenor) {
case 0:
resultadoMenor = "DESAYUNOS";
break;
case 1:
resultadoMenor = "COMIDAS";
break;
case 2:
resultadoMenor = "MERIENDAS";
break;
case 3:
resultadoMenor = "CENAS";
break;
case 4:
resultadoMenor = "COPAS";
break;
}
}else{
resultadoMenor = "EMPATE";
}
//comprobar si las comidas supera a la media de ventas del dia
if(caja[1]>mediaCaja){
mayorCopas = "SI";
} else{
mayorCopas = "NO";
}
//Mostrar resultados
System.
out.
println(resultadoMayor
+ "#" + resultadoMenor
+ "#" + mayorCopas
); }
}