Ejercicio básico resuelto con estructura repetitiva
Programa que lea números enteros por
teclado y para cada número introducido indique si es positivo o negativo y si
es par o impar. Se deben realizar tres versiones del programa:
- En la primera versión se utilizará un bucle while. La lectura de números finalizará cuando se introduzca un cero.
- En la segunda versión se utilizará un bucle do .. while. La lectura de números en esta versión también finaliza cuando se introduzca un cero.
- En la tercera versión también se utilizará un bucle do .. while pero en este caso la lectura de números finaliza cuando se responda ‘N’ ó ‘n’ a la pregunta “Desea introducir más números? (S/N):”
Ejercicio resuelto:
Solución 1: utilizando un bucle while y finalizando cuando se introduce
un cero.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int numero;
System.out.print("Introduce un número (0 para acabar): ");
numero = sc.nextInt();
while (numero != 0) {
if (numero > 0) {
System.out.print("Positivo");
} else {
System.out.print("Negativo");
}
if(numero % 2 == 0){
System.out.println(" Par");
}else{
System.out.println(" Impar");
}
System.out.print("Introduce un número (0 para acabar): ");
numero = sc.nextInt();
}
}
}
Solución 2: utilizando un bucle do
.. while y finalizando cuando se
introduce un cero.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int numero;
do {
System.out.print("Introduce un número (0 para acabar): ");
numero = sc.nextInt();
if (numero != 0) {
if (numero > 0) {
System.out.print("Positivo");
} else {
System.out.print("Negativo");
}
if (numero % 2 == 0) {
System.out.println(" Par");
} else {
System.out.println(" Impar");
}
}
} while (numero != 0);
}
}
Solución 3: utilizando un bucle do
.. while y finalizando cuando se responde
‘n’ ó ‘N’ a la pregunta “Desea
introducir más números? (S/N):”.
import java.util.Scanner;
import java.io.IOException;
public class Main {
public static void main(String[] args) throws IOException{
Scanner sc = new Scanner(System.in);
int numero;
char respuesta;
do {
System.out.print("Introduce un número: ");
numero = sc.nextInt();
if (numero != 0) {
if (numero > 0) {
System.out.print("Positivo");
} else {
System.out.print("Negativo");
}
if (numero % 2 == 0) {
System.out.println(" Par");
} else {
System.out.println(" Impar");
}
}
System.out.print("Desea introducir más números? (S/N): ");
respuesta = (char) System.in.read();
} while (respuesta != 'N' && respuesta != 'n');
}
}
Buenas Enrique!...He estado intentando usar Scanner sc = new Scanner(System.in) con respuesta= sc.nextLine() para ingresar N/S, teniendo en cuenta que te pide elemento de tipo String, pero no me resulta por ningún lado, el programa lo salta....Gracias
ResponderEliminarcambia esta linea
ResponderEliminarrespuesta = (char) System.in.read();
por
respuesta = sc.next().charAt(0);
Buenas, he probado a mirar el resultado final poniendo el operador logico || en vez de && porque deberia ser , mientras no pase que caracter sea n , o, N en vez de poner n y , N
ResponderEliminarpero si lo pongo así , no me lo coge y me pide tres veces introducir mas numeros, como tu pones está bien pero, ¿podrias decirme porque no vale con el operador ||?
Gracias un saludo
Yo también tengo la misma duda. ?????
EliminarGracias.
lo que sucede es que tiene que ser el and lógico(&&) pues entiende que si es diferente de N o n, se convierte en true y sigue ejecutándose, la opción correcta es hacer N and n como condición.
Eliminarayuda con este xrfavor
ResponderEliminarDesarrollar un programa que pida números pares mientras el usuario indique que quiere seguir introduciendo números. Para indicar que quiere seguir escribiendo números, el usuario deberá contestar Si a la pregunta. Contar cuantos números pares se ha ingresado.
Escriba un número par: 4
¿Quiere escribir otro número par? (Si/No): S
Escriba un número par: 8
¿Quiere escribir otro número par? (Si/No): s
Escriba un número par: 7
7 no es un número par. Inténtelo de nuevo: 6
¿Quiere escribir otro número par? (Si/No): N
3. Desarrollar un programa que pida números pares mientras el usuario indique que quiere seguir introduciendo números. Para indicar que quiere seguir escribiendo números, el usuario deberá contestar Si a la pregunta. Contar cuantos números pares se ha ingresado.
ResponderEliminarEscriba un número par: 4
¿Quiere escribir otro número par? (Si/No): S
Escriba un número par: 8
¿Quiere escribir otro número par? (Si/No): s
Escriba un número par: 7
7 no es un número par. Inténtelo de nuevo: 6
¿Quiere escribir otro número par? (Si/No): N
Ha escrito 3 números pares.
gracias
ResponderEliminarEn la solución numero 3 creo que falta incluir import java.io.IOException; y también throws IOException
ResponderEliminarTienes razón. Ya está modificado. Gracias por avisar!!
Eliminar1. Ingresar un número entero positivo verificando que tenga dos dígitos y determinar si la suma de sus dígitos corresponde a un número impar.
ResponderEliminarAYUDEN CON ESTE