Java - Programa que lee un número entero positivo mayor que 2

 
Vista:
Imágen de perfil de Novato
Val: 24
Ha aumentado 1 puesto en Java (en relación al último mes)
Gráfica de Java

Programa que lee un número entero positivo mayor que 2

Publicado por Novato (11 intervenciones) el 16/11/2019 20:18:51
Buenos tardes, me han mandado un ejercicio en clase, y vais a ver que está tirado, pero es que me he quedado atascado y no sé cómo hacerlo:

Programa que lee un número entero positivo mayor que 2. Si el
número introducido no cumple estas condiciones se pide de nuevo al
usuario que lo introduzca. (Usa DO WHILE)
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

Programa que lee un número entero positivo mayor que 2

Publicado por Kabuto (1381 intervenciones) el 16/11/2019 21:43:41
La condición del bucle es que se repita la petición de número, mientras el número sea menor o igual a 2

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import java.util.Scanner;
 
public class Pedir {
 
	public static void main(String[] args) {
 
		Scanner teclado = new Scanner(System.in);
 
		int numero = 0;
		do {
			System.out.print("Teclea un número mayor que 2: ");
			numero = teclado.nextInt();
		}while(numero <= 2);
		System.out.println("\nFIN DE PROGRAMA");
		teclado.close();
 
	}
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
Imágen de perfil de Novato
Val: 24
Ha aumentado 1 puesto en Java (en relación al último mes)
Gráfica de Java

Programa que lee un número entero positivo mayor que 2

Publicado por Novato (11 intervenciones) el 16/11/2019 22:20:52
Muchas gracias amigo, me ha servido mucho tu respuesta!!

Me gustaría preguntarte otra duda ya que veo que controlas. Si tengo una clase, que no es inicio, y quiero cerrar los bucles DO WHILE sin usar la clase scanner, porque la tengo en otra clase (dentro de otro paquete)....

¿Cómo sería? ¿Tendría que usar boolean?
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
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

Programa que lee un número entero positivo mayor que 2

Publicado por Kabuto (1381 intervenciones) el 17/11/2019 23:05:01
MMhhh... lo siento, pero no entiendo tu pregunta.

La clase Scanner lo único que hace es "recibir" datos de una fuente, en este caso, los recibe del teclado.
Ni abre, ni cierra bucles. Solo recibe datos y los guarda en la variable que le asignemos.

El bucle, ya se está cerrando por una condición boolean:
while(numero <= 2)

El bucle analiza la expresión en negrita, que es booleana, porque solo puede dar dos resultados: verdadero o falso.

Explicado esto, ahora intenta explicarme cuál es tu consulta. Muestra un código que tengas escrito, si lo tienes..

¿Te refieres quizás a que tienes otra clase que ya usa Scanner para leer datos?

Entonces, para usarla en tu programa, en lugar de instanciar un objeto Scanner, lo que has de hacer es instanciar esa clase, que suponemos tendrá sus propios métodos para leer datos del teclado y retornarlos para poder recibirlos en este programa.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Novato
Val: 24
Ha aumentado 1 puesto en Java (en relación al último mes)
Gráfica de Java

Programa que lee un número entero positivo mayor que 2

Publicado por Novato (11 intervenciones) el 20/11/2019 18:07:29
Hola amigo, gracias por contestar.

Me refería, a que si quiero volver a repetir un bucle DO WHILE por si por ejemplo, he introducido una opción errónea... ¿Cómo podría hacerlo?

Te pongo un ejemplo porque no tengo código


1
2
3
4
5
6
7
8
9
10
11
12
13
14
(CLASE SCANNER)
NUM = CLASE SCANNER
ESCRIBE("Introduzca un número)


IF (NUM >0)

DO{
ESCRIBE("Este número es " + NUM)

WHILE (NUM>0)

ELSE (NUM < 0)
ESCRIBE("ERROR. INTRODUZCA OTRO NÚMERO)


Con este ejemplo, me refiero, si introduzco un número negativo, me salta el error, pero no me deja volver al INTRODUZCA UN NÚMERO (Debajo de la clase scanner).
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
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

Programa que lee un número entero positivo mayor que 2

Publicado por Kabuto (1381 intervenciones) el 20/11/2019 23:38:28
Creo que tienes la respuesta en el código que puse antes.

Yo puse esto, que pide y lee números, mientras se introduzcan números menores o iguales a 2

1
2
3
4
do {
			System.out.print("Teclea un número mayor que 2: ");
			numero = teclado.nextInt();
		}while(numero <= 2);

Si lo que quieres es pedir números solo positivos, entonces el bucle se ha de repetir mientras los números sean negativos (menores que cero):

1
2
3
4
do {
			System.out.print("Teclea un número positivo: ");
			numero = teclado.nextInt();
		}while(numero < 0);

Si además quieres advertirle de que se ha equivocado, dentro del bucle analizas el valor introducido y adviertes si es necesario:

1
2
3
4
5
6
do {
			System.out.print("Teclea un número positivo: ");
			numero = teclado.nextInt();
			if (num < 0)
						System.out.println("¡¡He dicho que ha de ser positivo!!");
		}while(numero < 0);


Es decir, las líneas que tu quieras que se repitan, han de estar dentro de un bucle.
Si queremos pedir, leer y advertir mientras se cumple (o no se cumple) cierta condición, pues todo eso va dentro del bucle
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Novato
Val: 24
Ha aumentado 1 puesto en Java (en relación al último mes)
Gráfica de Java

Programa que lee un número entero positivo mayor que 2

Publicado por Novato (11 intervenciones) el 21/11/2019 12:53:37
Muchísimas gracias!!! Has resuelto todas mis dudas :D
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