epelpad

Menues y sub menues iterativos en consola de Java.

Menues y sub menues iterativos en consola de Java.
Bien, para aquellos que nos iniciamos en el mundo de Java sabemos que antes de las interfaces gráficas(GUI´s)
debemos desarrollar nuestras aplicaciones limitándonos a la consola de la JVM.

Como bien dice el título del post, hoy veremos como implementar menues y submenues "iterativos" aunq también serán interactivos, jajaj X ).

La palabra iteración indica un proceso cíclico, en nuestro caso lo que deseamos es que el programa se desarrolle en tanto sea el usuario quien decida darle fin.

Para esto en primer lugar vamos a precisar una estructura de repetición, en este caso implementaremas un while.

La sintaxis genérica de while es la siguiente:

while(condición){
...sentencias...
}

Donde nuestra condición será dada x el valor de una variable condicionada mediante operadores lógicos:

Menor que: <

Mayor que: >

Menor o igual que: <=

Mayor o igual que: >=

Igual que: ==

Distinto que: !=

y nuestras condiciones pueden además sumarse o dirimirse de la siguiente manera:

(condición y otra condición): (cond1 && cond2), donde se analiza que sean verdaderas ambas condiciones.

(condición o otra condición): (cond1 || cond2), donde se analizará la veracidad de una o de otra condición.

Ejemplo de mostrar en pantalla números del 1 al 10 con while y condiciones:


int num = 1;
    while(num<=10){
       
        System.out.println(num);
    num++;
    }


Lo que veremos en la consola será:

[code]
Run:
1
2
3
4
5
6
7
8
9
10
BUILD SUCCESSFUL (total time: 16 seconds)


Nuestro menu tendrá en este caso 4 opciones.

Para implementar la selección de las opciones usaremos una estructura de selección de tipo switch, donde la estructura genérica para el switch es:

int opcion = 0;
System.out.println("ingrese una opcion");
opcion = miScanner.nextInt();
switch (opcion){

case 1:
           System.out.println("Has elegido la opción #1");

                                                                               break;

case 2:
           System.out.println("Has elegido la opción #2");
                                                                               break;

default:
          System.out.println("Has elegido una opción nincorrecta");
                                                                               break;
} [/color][/color][/color]


Para implementar submenues dentro de un menu basta con "anidar" un switch dentro de otro.

En este ejemplo tenemos un menú que se repite una y otra vez hasta que el usuario elija en el menú principal la opción 4.

Donde se ve:
[color=#000000][color=#000000][color=#000000]
system.out.println("Texto n")
[/color][/color][/color]


Debería verse:
java
donde "/n" es solo un salto de linea.
[color=#000000]
import java.util.Scanner;//Importación de la clase Scanner para leer datos del teclado

public class Menues {
  
 public static void main(String[]args) {
    
   Scanner miscanner = new Scanner(System.in); //Creación de objeto propio de Scanner
   
   int op = 0;//variable que maneja los menús
   
     while (op!=4){// Estructura que repite el algoritmo del menú principal
                   //hasta que se la condición sea falsa
         
         //Se muestra el menu principal
       System.out.println(".................n"
                        + ".  1 opcion #1  .n"
                        + ".  2 opcion #2  .n"
                        + ".  3 opcion #3  .n"
                        + ".  4 Salir      .n"
                        + ".................");
  
       op= miscanner.nextInt(); //Se le da a la variable op el valor ingresado desde el teclado    
       
       switch(op){// Estructura de selección del menú principal
case 1://en caso de que op tome el valor 1
    System.out.println("...............n"
                        + ".Seleccionó #1.n"
                        + "...............");
while(op!=3){
       System.out.println("...............n"
                        + ".  1 Sub #1   .n"
                        + ".  2 Sub #2   .n"
                        + ".  3 Volver   .n"
                        + "...............");
       op=miscanner.nextInt(); //Se le da a la variable op el valor ingresado desde el teclado    
       
       //Sub menú dentro de opción #1 en menú principal
       
       switch(op){//abre Sub menú dentro de opción #1 del menu Principal
           case 1:
       System.out.println("...............n"
                        + ".  Sub #1     .n"
                        + "...............");
               break;
           case 2 :
        System.out.println("...............n"
                         + ". Sub #2      .n"
                         + "...............");
               break;
               
               default://En caso de que el usuario ingrese una opción incorrecta
                   System.out.println("...............n"
                                        + ".#"+op+" Invalido  .n"
                                        + "...............");
               break;
               
       }//cierra Sub menu
}
    break;
    case 2:System.out.println("...............n"
                            + ".Seleccionó #2.n"
                            + "...............");
    break;
        case 3:System.out.println("...............n"
                                + ".Seleccionó #3.n"
                                + "...............");
    break;
        case 4:System.out.println("...............n"
                                + ".   #3 Salir  .n"
                                + "...............");
            break;
        default:System.out.println("...............n"
                                + ".#"+op+" Invalido  .n"
                                + "...............");
       }
   } 
     
   
  } 

}



En el ejemplo anterior si se elige la opcion uno nos encontraremos con tres nuevas opciones, y solo se saldrá del programa si en el menú principal se elige la opcion Salir.

También con default mostramos un error cada vez que el usuario ingresa una opción que no es válida

Otros posts míos: 

Calculadora en java con intergfaz gráfica

Timbre para sordos (luz temporizada) y Luz parpadeante 555

Alarma Fotosensible casera con NE555 (facil)


Amplificador prtátil casero, buen sonido con 9V

Preamplificador casero para micrófono electret o guitarra                          

Y husmea entre mis posts que de seguro alguno te va a interesar:

Taringa.net/@diazespina/posts
 
                                                   
Shout GifGIF
 




Como siempre:


Dudas, criticas, comentarios y/o puntos Bienvenidos!!! 



Shout GifGIF

7 comentarios - Menues y sub menues iterativos en consola de Java.

PscicoPepito +2
Muy buena Info!
solo una cosita, cuando explicas el While y das el ejemplo, lo que mostraria el while no seria hasta 9? otra cosita mas donde le suma 1 a la variable num?

Saludos
diazespina +1
Ups! Corregido, gracias, me faltaba el num++;
Con respecto a lo otro, cuando num =9 se hace el ultimo incremento que dara 10,
Gracias psico Ud. atento!!!
diazespina +1
Corregido y contestado, gracias!!!
PscicoPepito +1
ahora si quedo joyita!! jejeje aunque java no se, algo entiendo! jajajajaja
kristi4no
que pena .. tengo este programa junto con otro, como hago para meterlo en un menu, pero no he podido, ¿como lo hago?

package menu;

import java.util.Scanner;

public class resistencias {

int p, s, t, c;

public void orden(int uno, int dos, int tres, int cuatro) {

p = uno;
s = dos;
t = tres;
c = cuatro;
}

public void primer() {
switch (p) {
case 0:
System.out.print("";
break;
case 1:
System.out.print(1);
break;
case 2:
System.out.print(2);
break;
case 3:
System.out.print(3);
break;
case 4:
System.out.print(4);
break;
case 5:
System.out.print(5);
break;
case 6:
System.out.print(6);
break;
case 7:
System.out.print(7);
break;
case 8:
System.out.print(8);
break;
case 9:
System.out.print(9);
break;
}
}

public void segundo() {
switch (s) {
case 0:
System.out.print(0);
break;
case 1:
System.out.print(1);
break;
case 2:
System.out.print(2);
break;
case 3:
System.out.print(3);
break;
case 4:
System.out.print(4);
break;
case 5:
System.out.print(5);
break;
case 6:
System.out.print(6);
break;
case 7:
System.out.print(7);
break;
case 8:
System.out.print(8);
break;
case 9:
System.out.print(9);
break;
}
}

public void tercera() {
switch (t) {
case 0:
System.out.print(" Ohmiosn";
break;
case 1:
System.out.print("0 Ohmiosn";
break;
case 2:
System.out.print("00 Ohmiosn";
break;
case 3:
System.out.print("000 Ohmiosn";
break;
case 4:
System.out.print("0000 Ohmiosn";
break;
case 5:
System.out.print("00000 Ohmiosn";
break;
case 6:
System.out.print("000000 Ohmiosn";
break;
case 7:
System.out.print("0000000 Ohmiosn";
break;
case 8:
System.out.print("00000000 Ohmiosn";
break;
case 9:
System.out.print("000000000 Ohmiosn";
break;
case 10:
System.out.print("*(10^-1) Ohmiosn";
break;
case 11:
System.out.print("*(10^-2) Ohmiosn";
break;
}
}

public void cuarta() {
switch (c) {
case 1:
System.out.println("Tolerancia: ± 1%";
break;
case 2:
System.out.println("Tolerancia: ± 2%";
break;
case 5:
System.out.println("Tolerancia: ± 0.5%";
break;
case 10:
System.out.println("Tolerancia: ± 5%";
break;
case 11:
System.out.println("Tolerancia: ± 10%";
break;
case 12:
System.out.println("Tolerancia: ± 20%";
break;
}
}

public void main(String[] args) {
Scanner br = new Scanner(System.in);
int a;
try {
do {

int primera, segunda, tercera, cuarta;
System.out.println("CALCULARESISTENCIA V1.0n";

System.out.println("Este es un programa para calcular el valor de la resistencia y la tolerancia de una resistencia.nA continuación se mostrarán las lista de los colores, porfavor siga adecuadamente los pasos npara el buen funcionamiento de este.nn";
System.out.println("____________________________________________________";
System.out.println("1. cafe";
System.out.println("2. rojo";
System.out.println("3. naranja";
System.out.println("4. amarillo";
System.out.println("5. verde";
System.out.println("6. azul";
kristi4no
System.out.println("7. violeta";
System.out.println("8. gris";
System.out.println("9. blancon";

System.out.println("Digite el tercer númeron*";

tercera = br.nextInt();
System.out.println("____________________________________________________";
//-----------------------------------------------

System.out.println("1. cafe";
System.out.println("2. rojo";
System.out.println("5. verde";
System.out.println("10. oro";
System.out.println("11. plata";
System.out.println("12. sin colorn";

System.out.println("Digite el cuarto númeron*";
cuarta = br.nextInt();
//-----------------------------------------------

System.out.println("____________________________________________________";
System.out.println("*****RESULTADO*****n";

resistencias r = new resistencias();
r.orden(primera, segunda, tercera, cuarta);
r.primer();
r.segundo();
r.tercera();
r.cuarta();
System.out.println("____________________________________________________";
System.out.println("¿Desea volver a ejecutar el programa?";
System.out.println("Si = 1 nNo = 0";
a = br.nextInt();
} while (a == 1);
} catch (Exception e) {
System.out.println("Ingresó un valor no numerico, no se puede realizar la operación";

}

}
}