[ Foro de Java ]

Ayuda con 2 ejercicios - 6.2.4

30-Dec-2015 00:36
Invitado (...)
1 Respuestas

Primera duda, el programa esta casi completo, pero pasa algo, cuando yo ingreso por primera vez dos números que son 0, me salta el mensaje diciendome "Error, ingresaste dos números que son 0, intenta de nuevo" pero el programa no para, para recién cuando en el bucle ingresas dos números con 0, que puede ser?

 
import java.util.Scanner;
public class ejercicio624 {
	public static void main(String[]args){
		Scanner input=new Scanner(System.in);
		System.out.println("Ingrese un número entero y que no sea 0");
		int n1=input.nextInt();
		System.out.println("Ingrese otro número entero y que no sea 0");
		int n2=input.nextInt();
		if(n1==0 && n2==0)
			System.out.println("Error, ingresaste dos números que son 0, intenta de nuevo");
		else
			System.out.println(n1+n2);
		do{
			System.out.println("Ingrese un número entero, acordate de que no sea 0");
			n1=input.nextInt(); 
			System.out.println("Ingrese otro número entero, no ingreses 0");
			n2=input.nextInt();
			System.out.println(n1+n2);		
		}while(n1!=0 && n2!=0);
		System.out.println("Ingresaste en los dos casos el nùmero 0");
	}
}
 


y la segunda duda, es que si alguien me puede echar una mano con el ejercicio 6.2.4 o al menos una pista , porque no se muy bien como realizarlo, tiene algo que ver con Println y print? Muchas gracias.


04-Jan-2016 12:22
Nacho Cabanes (+30)

Tu fuente parece ser una solución al ejercicio 6.2.4 y luego vuelves a preguntar por ese mismo ejercicio, así que imagino que la segunda pregunta se debería referir a otro ejercicio distinto.

En cualquier caso, indica mejor el texto del ejercicio, porque la numeración puede cambiar si añado ejercicios nuevos. Imagino que te refieres a éste:

Ejercicio propuesto 6.2.4: Crea un programa que pida al usuario dos números enteros y muestre su suma. Se repetirá hasta que los dos sean 0. Emplea do-while.

En ese caso, tu solución se acerca bastante, aunque es innecesariamente complicada y la condición de salida es incorrecta (hay que repetir mientras al menos uno sea distinto de cero). Una solución más compacta podría ser:

 
import java.util.Scanner;
public class ejercicio624 {
	public static void main(String[]args){
		Scanner input=new Scanner(System.in);
		int n1,n2;
		do{
			System.out.println("Ingrese un número entero (0 para terminar)");
			n1=input.nextInt(); 
			System.out.println("Ingrese otro número entero (otro 0 para terminar)");
			n2=input.nextInt();
			System.out.println(n1+n2);		
		}while(n1!=0 || n2!=0);
		System.out.println("Hasta luego!");
	}
}
 


Se puede mejorar, por ejemplo haciendo que no muestre la suma en caso de que se introduzcan los dos ceros, pero eso son detalles menores.






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)