Java - Numeros

 
Vista:
sin imagen de perfil

Numeros

Publicado por Javier (5 intervenciones) el 31/01/2024 12:29:29
Hola quiero hacer que te pida números entre -100 y -50 o 200 y 60
Si da no es un número es otra cosa excepcion y si es correcto que diga cuantas veces es correcto, tengo problemas con los números negativos y que me vuelva a repetir si es correcto
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

Numeros

Publicado por Kabuto (1383 intervenciones) el 31/01/2024 17:58:05
Sería interesante ver el código que has escrito tú para identificar donde te equivocas y corregirlo.

En cualquier caso, dejo aquí una posible solución. Creo entender que el programa solo se repite cuando se da un número correcto:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
public class Numeros {
 
	public static void main(String[] args) {
 
		Scanner teclado = new Scanner(System.in);
		int correctos = 0;
		boolean esCorrecto = true;
 
		while(esCorrecto) {
			System.out.println("\nDame un numero entero entre -100 y -50 o 200 y 60");
			System.out.print("Numero: ");
			try {
				int numero = teclado.nextInt();
				if ((numero >= -100 && numero <= -50) || (numero >= 60 && numero <= 200)) {
					System.out.println("Es correcto!!");
					correctos++;
					System.out.println("Total correctos: " + correctos);
				}
				else {
					System.out.println("No es correcto!!");
					esCorrecto = false;
				}
			}
			catch(Exception ex) {
				System.out.println("Eso no es un número entero");
				esCorrecto = false;
			}
		}
 
		System.out.println("\n\t\tFIN 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
0
Comentar
sin imagen de perfil

Numeros

Publicado por Javier (5 intervenciones) el 02/02/2024 12:15:57
package ExamenFebrero;

import java.util.Scanner;
import java.util.InputMismatchException;

/**
*
* @author javil
*/
public class examenfebrero {

public static void main(String[] args) {
// Constantes

// Variables de entrada
int numero = 0;
int cantidadn = 1;

// Variables de salida
// Variables auxiliares
Boolean errorentrada;

// Clase Scanner para petición de datos
Scanner teclado = new Scanner(System.in);
//----------------------------------------------
// Entrada de datos
//----------------------------------------------
System.out.println("Leer 7 numeros reales y comprobar que esten en el intervalo[-100,-50] o bien [60,200]");
System.out.println("------------------------------------------------------------------------------------");
do {
System.out.println("Introduzca un numero real que este en el intervalo [-100,-50] o bien en el [60,200]");

try {

errorentrada = numero > -100 || numero > -50 || numero > 60 || numero > 200;
if (errorentrada) {
System.out.printf("Incorrecto. Numero descartado.Total de numeros reales hasta ahora:0\n ");

}

} catch (InputMismatchException ex) {//Captura la excepcion si tecleamos algo erroneo
System.err.println("Incorrecto. Numero descartado.Total de numeros reales hasta ahora:0\n ");
errorentrada = true;
teclado.nextLine(); // Limpiamos lo que haya en el teclado, que es incorrecto
}

} while (errorentrada );
errorentrada=false;
if (errorentrada=false){
System.out.println("Correcto. Total de numeros reales es" + cantidadn++);
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

Numeros

Publicado por Kabuto (1383 intervenciones) el 03/02/2024 22:08:24
La lógica de esta expresión no es correcta.
1
errorentrada = numero > -100 || numero > -50 || numero > 60 || numero > 200;

Si unes todas las comparaciones con OR, estás diciendo que basta con que se cumpla UNA SOLA de ellas, para que sea TRUE.
Por tanto, cualquier número que sea mayor que -100, va dar resultado TRUE.

Es decir, no estás consiguiendo establecer dos rangos limitados de valores que son TRUE.

Fíjate cómo lo escribí yo:
1
if ((numero >= -100 && numero <= -50) || (numero >= 60 && numero <= 200))

Tenemos dos expresiones, cada una encerrada en sus propios paréntesis, unidas por un OR.
Dichas expresiones, dentro de sus paréntesis, constan de dos comparaciones unidas por un AND.

Ahí estamos diciendo que solo serán TRUE los valores que sean mayor/igual que -100 Y menor/igual -50 O también los valores que sean mayor/igual que 60 Y menor/igual que 200

Ahí sí hemos definido dos rangos delimitados, así que los números que no entren dentro de esos rangos, serán FALSE.

Por ejemplo, el valor 45 sería FALSE.
El valor 65, será TRUE.

Si utilizamos mi expresión, cuando esta retorna TRUE es porque el valor es correcto, y es entonces cuando habría que aumentar el contador de números válidos.
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
sin imagen de perfil

Numeros

Publicado por Javier (5 intervenciones) el 02/02/2024 12:17:25
Hola no se tiene que repetir tanto si es falso como si es verdadero pero no consigo hacerlo si pongo un valor verdadero termina el programa y lo que quiero es que me cuente las veces que son verdaderas
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 Alfil
Val: 17
Ha aumentado 1 puesto en Java (en relación al último mes)
Gráfica de Java

Numeros

Publicado por Alfil (12 intervenciones) el 11/02/2024 13:42:52
Del código de Kabuto, lo único que tienes que eliminar para que se cumpla la condición que quieres es la línea 21.

Ten en cuenta que al eliminar esta línea para salir del programa deberás provocar una excepción, en este caso, escribir cualquier letra en vez de un numero.
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