elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


 


Tema destacado: Análisis del vídeo del hackeo al Sindicato de los Mossos de Esquadra


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java (Moderadores: Debci, Leyer)
| | | |-+  si marca >4 le diga que no pueda y/o si marca <1 le diga lo mismo
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: si marca >4 le diga que no pueda y/o si marca <1 le diga lo mismo  (Leído 260 veces)
CharlyScoTT

Desconectado Desconectado

Mensajes: 3


Ver Perfil
si marca >4 le diga que no pueda y/o si marca <1 le diga lo mismo
« en: 30 Septiembre 2017, 18:25 »

Quiero que mi usuario marque algunas de las opciones si marca  >4 le diga que no pueda y/o si marca <1 le diga lo mismo
 :P  :huh: ;D

Código
  1. import java.util.Scanner;
  2.  
  3.  
  4. public class PrimerEjemplo {
  5.  
  6.  
  7.    public static void main(String[] args) {
  8.            Scanner sr= new Scanner(System.in);
  9.  
  10.            System.out.println("Las operaciones a realizar son");
  11.            System.out.println("1.-Suma");
  12.            System.out.println("2.-Resta");
  13.            System.out.println("3.-Multiplicacion");
  14.            System.out.println("4.-Division");
  15.            System.out.println("¿Que opcion deseas?");
  16.            int respuesta=sr.nextInt();
  17.  
  18.  
  19.    System.out.println("Introduce el valor de R");
  20.            int r=sr.nextInt();
  21.  
  22.            System.out.println("Introduce el valor de M");
  23.            int m=sr.nextInt();
  24.  
  25.            if (respuesta==1){
  26.            int suma2=r+m;//Realiza la operación
  27.            System.out.println("La suma es:"+suma2);}
  28.             if (respuesta==2){
  29.            int resta=r-m;//Realiza la operación
  30.            System.out.println("La resta es:"+resta);}
  31.             if (respuesta==3){
  32.            int mult=r*m;//Realiza la operacón
  33.            System.out.println("La multiplicación es:"+mult);}
  34.             if (respuesta==4){
  35.            double Div=r/m;//Realiza la operación
  36.            System.out.println("La división es:"+Div);}


· Los códigos deben ir en etiquetas GeSHi
· Los títulos deben ser descriptivos al problema
>aquí las reglas del foro
-Engel Lex


« Última modificación: 30 Septiembre 2017, 18:32 por CharlyScoTT » En línea

NEBIRE


Desconectado Desconectado

Mensajes: 641


Ver Perfil
Re: si marca >4 le diga que no pueda y/o si marca <1 le diga lo mismo
« Respuesta #1 en: 1 Octubre 2017, 11:24 »

Las entradas de datos del usuario siguen este esquema básico...

Código:
Funcion ActuarConUusuario // en realidad, es el bucle solo el pedazo de código que interesa, se envuelve en una función para que no parezca ...código perdido ...

    Hacer
        x = Pedirdato
        y = VerificarEntradaUser(x) //, A, Z, Mensaje)
    Repetir Mientras (y=FALSE)  ' o Hasta que (y=TRUE)

Fin Funcion

Y la verificación, sigue un esquema más o menos similar (hay que adaptarla siempre a las necesidades, aquí adaptada a la tuya), a esto:

Código:
Buleano = Funcion VerificarEntradaUser(dato, Min, Max, MensajeError)
    Si (Dato >= Min) y (Dato <= Max) luego
        Devolver TRUE
    Sino
        MostrarMensaje (MensajeError)
        Devolver FALSE
    Fin si
Fin funcion

Finalmente en tu rutina de verificar si está limitado al rango 1-4, la llamada sería más o menos:
Código:
    y = VerificarEntradaUser(x, 1, 4,"no puedes marcar el valor " + )

El mensaje de error tu sabrás cual es más razonable conforme a lo que el usuario esté haciendo.
Podrías tener contantes y un array con mensajes de error, con cada petición según donde estés marcas el índice del mensaje de error que se debería mostrar para ese caso concreto....
Código:
Enumeracion ConstantesMensajesErrorEntradaUser
    ERROR_ENTRADA_USER_SOLO_UNA_CASILLA = 0 // Debe activar solo una casilla a la vez
    ERROR_ENTRADA_USER_VALOR_FUERA_RANGO = 1 // El valor entrado está fuera dle rango permitido.
    ...
    ...
    ERROR_ENTRADA_USER_CARACTER_ILEGAL = 8 // La entrada contiene varacteres no permitidos (se esperaban números , o solo x letras, etc...).
Fin enumeracion

String ArrayErroresEntradaUser(0 a 8) // por ejemplo, tu sabrás cuantos mensajes de error serían precisos...
Entero ErrorActualEntradaUser // tipo ConstantesMensajesErrorEntradaUser

Funcion Inicializar
    ArrayErroresEntradaUser(ERROR_ENTRADA_USER_SOLO_UNA_CASILLA) = "Debe activar solo una casilla a la vez."
    ArrayErroresEntradaUser(ERROR_ENTRADA_USER_VALOR_FUERA_RANGO) = "El valor entrado está fuera dle rango permitido."
    ...
    ...
    ArrayErroresEntradaUser(ERROR_ENTRADA_USER_CARACTER_ILEGAL) = "La entrada contiene varacteres no permitidos (se esperaba solo números)."

    //Otras cosas que requieran ser inicializadas al comienzo del programa...
Fin funcion
   
Funcion BotonX_Click(parametros....)
    ErrorActualEntradaUser = ERROR_ENTRADA_USER_VALOR_FUERA_RANGO //en esta pieza de código se espera que el error que vaya a cometer el usuario sea (fuera de rango, si fueran posibles más errores, sería la función 'VerificarEntradaUser' quien deberiera chequear que error se comete y en base a ello, obtener el mensaje de error oportuno al caso.
    LlamarA ActuarConUsuario
Fin funcion

El resto son cambios, y se produce en la llamada al mensaje de error (que ahora se usa un índice en un array para obtener el mensaje...
Código:
Buleano = Funcion VerificarEntradaUser(dato, Min, Max) //se elimina el parametro mensajeError.
    Si (Dato >= Min) y (Dato <= Max) luego
        Devolver TRUE
    Sino
        MostrarMensaje (ArrayErroresEntradaUser(ErrorActualEntradaUser))
        Devolver FALSE
    Fin si
Fin funcion

Si los mensajes son muy variopintos y difíciles de 'predecir' según la situación, entonces es mejor que desde donde se llame se ingrese ya, el mensaje específico, que toque en caso de error...

Si lo repasas varias vece,s acabarás por encontrarle la lógica.


En línea

CharlyScoTT

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Re: si marca >4 le diga que no pueda y/o si marca <1 le diga lo mismo
« Respuesta #2 en: 20 Octubre 2017, 23:55 »

Gracias !! ;)
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
si hay alguien que lo sepa que me lo diga
Dispositivos Móviles (PDA's, Smartphones, Tablets)
YoLupi 0 1,113 Último mensaje 15 Octubre 2009, 11:40
por YoLupi
alguien que me diga q es esto? « 1 2 3 4 »
Windows
Delt_hack 39 8,339 Último mensaje 21 Enero 2010, 21:16
por Delt_hack
No diga 'spam' diga 'pourriel'
Noticias
wolfbcn 0 427 Último mensaje 7 Julio 2012, 02:10
por wolfbcn
Erdogan promete "arrancar de raíz" Twitter, diga lo que diga el mundo
Noticias
wolfbcn 0 420 Último mensaje 21 Marzo 2014, 01:39
por wolfbcn
¿Qué espera que le diga la CIA?
Noticias
wolfbcn 3 520 Último mensaje 10 Junio 2014, 20:32
por EFEX
Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines