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:
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:
Y husmea entre mis posts que de seguro alguno te va a interesar:
Como siempre:
Dudas, criticas, comentarios y/o puntos Bienvenidos!!!