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

 

 


Tema destacado: Como proteger una cartera - billetera de Bitcoin


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  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 2,700 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 pm »

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 pm por CharlyScoTT » En línea

Serapis
Colaborador
***
Desconectado Desconectado

Mensajes: 3.348


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 am »

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 pm »

Gracias !! ;)
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
copiar un exe donde se le diga?
Programación Visual Basic
rextor 4 1,943 Último mensaje 8 Julio 2005, 12:36 pm
por programatrix
No diga 'spam' diga 'pourriel'
Noticias
wolfbcn 0 1,123 Último mensaje 7 Julio 2012, 02:10 am
por wolfbcn
Erdogan promete "arrancar de raíz" Twitter, diga lo que diga el mundo
Noticias
wolfbcn 0 1,168 Último mensaje 21 Marzo 2014, 01:39 am
por wolfbcn
¿Qué espera que le diga la CIA?
Noticias
wolfbcn 3 1,461 Último mensaje 10 Junio 2014, 20:32 pm
por EFEX
[Resuelto]: Marca de tiempo UNIX PHP vs Marca de tiempo UNIX javascript
Desarrollo Web
Leguim 2 2,724 Último mensaje 11 Febrero 2020, 17:04 pm
por EdePC
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines