Buscar
Social
Ofertas laborales ES

Foro sobre Java SE > while & if

El caso es que con un while lo suyo es utilizar un case, pero teóricamente este ejercicio debiera estar preguntando hasta que las dos edades sean == a 0. entra en el bucle, no pregunta ni para.

int edadCarlos = 47;
int edadmoises = 45;

while(edadCarlos !=0 & edadmoises !=0)
System.out.println("Cual es la edad de Carlos¿?\n 0 para salir");
Scanner lector = new Scanner(System.in);
edadCarlos = lector.nextInt();
System.out.println("Y la de Moisés¿?\n 0 para salir");
Scanner lector1 = new Scanner(System.in); //
edadmoises = lector1.nextInt();
// esto debiera haberlo hecho con una case
if(edadCarlos >=18 && edadmoises >=18) // operador Y
System.out.println(" Carlos y Moisés son mayores de edad");
else if(edadCarlos==edadmoises)
System.out.println(" Carlos y Moisés tienen la misma edad");
else if(edadCarlos<=18 && edadmoises<=18)
System.out.println(" Carlos y Moisés son menores de edad");
else if(edadCarlos< edadmoises)
System.out.println("Carlos en más joven que Moisés");
else if(edadCarlos> edadmoises)
System.out.println("Carlos en mayor que Moisés");
else if(edadCarlos==0 && edadmoises==0)
System.out.println("Has decido salir del bucle de edades ");
else
System.out.println(" Carlos y Moisés, la combinación no es encontrada");
}
Gracias. He decidido empezar desde 0 con más calma.

febrero 26, 2012 | Registered Commenterhugodepino

import java.util.Scanner;
public class ejemploo{
public static void main(String[]args){

int edadCarlos = 47;
int edadmoises = 45;

while(edadCarlos !=0 & edadmoises !=0) {
Scanner lector = new Scanner(System.in);
System.out.println(\"Cual es la edad de Carlos¿?\\n 0 para salir\");
String temp = lector.nextLine();
edadCarlos = Integer.parseInt(temp);
System.out.println(\"Y la de Moisés¿?\\n 0 para salir\");
temp = lector.nextLine();
edadmoises = Integer.parseInt(temp);
// esto debiera haberlo hecho con una case
if(edadCarlos >=18 && edadmoises >=18) // operador Y
System.out.println(\" Carlos y Moisés son mayores de edad\");
else if(edadCarlos==edadmoises)
System.out.println(\" Carlos y Moisés tienen la misma edad\");
else if(edadCarlos<=18 && edadmoises<=18)
System.out.println(\" Carlos y Moisés son menores de edad\");
else if(edadCarlos< edadmoises)
System.out.println(\"Carlos en más joven que Moisés\");
else if(edadCarlos> edadmoises)
System.out.println(\"Carlos en mayor que Moisés\");
else if(edadCarlos==0 && edadmoises==0)
System.out.println(\"Has decido salir del bucle de edades \");
else{
System.out.println(\" Carlos y Moisés, la combinación no es encontrada\");
}
}
}
}

//La verdad no se porque como tu lo haces da problemas

febrero 28, 2012 | Unregistered Commenterresalpa84

int edadCarlos = 47;
int edadmoises = 45;

while(edadCarlos !=0 & edadmoises !=0){
System.out.println("Cual es la edad de Carlos¿?\n 0 para salir");
Scanner lector = new Scanner(System.in);
edadCarlos = lector.nextInt();
System.out.println("Y la de Moisés¿?\n 0 para salir");
Scanner lector1 = new Scanner(System.in); //
edadmoises = lector1.nextInt();
// esto debiera haberlo hecho con una case
if(edadCarlos >=18 && edadmoises >=18) // operador Y
System.out.println(" Carlos y Moisés son mayores de edad");
else if(edadCarlos==edadmoises & edadCarlos!=0 & edadmoises!=0)
System.out.println(" Carlos y Moisés tienen la misma edad");
else if(edadCarlos<=18 && edadmoises<=18 & edadCarlos!=0 & edadmoises!=0)
System.out.println(" Carlos y Moisés son menores de edad");
else if(edadCarlos< edadmoises)
System.out.println("Carlos en más joven que Moisés");
else if(edadCarlos> edadmoises )
System.out.println("Carlos en mayor que Moisés");
else if(edadCarlos==0 && edadmoises==0){
System.out.println("Has decido salir del bucle de edades ");
break;
}
else
System.out.println(" Carlos y Moisés, la combinación no es encontrada");
}
Lo que he hecho es añadir un break; en el el ultimo elseif que compara con 0 asi sale del bucle y luego he añadido dos condiciones a los if que comparan con menores de edad y al que compara que sean iguales, asi cuando escribes 0 0 no saca por pantalla las frases: "Carlos y Moisés tienen la misma edad" y "Carlos y Moisés son menores de edad", espero que te sirva aunque seguramente llegue tarde, pero bueno.

marzo 1, 2012 | Registered Commenterobs1042