A煤n no tienes acceso a esta clase

Crea una cuenta y contin煤a viendo este curso

Curso de Introducci贸n a Java SE

Curso de Introducci贸n a Java SE

Anah铆 Salgado D铆az de la Vega

Anah铆 Salgado D铆az de la Vega

Bucle do While

31/39
Recursos

Los bucles (ciclos) nos ayudan a ejecutar una parte de nuestro c贸digo una cantidad de veces hasta que se cumpla alguna condici贸n y podamos continuar con la ejecuci贸n de nuestro c贸digo.

Existen diferentes bucles. Por ejemplo, el bucle do while:

do {
  // instrucciones
} while (condici贸n);

Los ciclos evaluar谩n si la condici贸n se cumple y cuando deje de hacerlo no ejecutar谩n m谩s el c贸digo del ciclo. Las instrucciones son las encargadas de que esta condici贸n cambie de verdadero a falso. De otra forma, si las instrucciones nunca cambian la condici贸n, el ciclo no se detendr谩 nunca, lo que conocemos como un ciclo infinito.

La clase Scanner le permite a los usuarios contestar algunas preguntas para que nuestro programa act煤e de una forma u otra. Para usarla solo debemos importar la clase Scanner de las APIs de desarrollo de Java:

import java.util.Scanner;

int response = 0;

Scanner sc = new Scanner(System.in);
response = Integer.valueOf(sc.nextLine());

Aportes 72

Preguntas 13

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesi贸n.

El Scanner lee lo que ingresa por teclado el usuario. Se declara de la siguiente manera:
Scanner sc = new Scanner(System.in);
Esta linea de c贸digo instancia un objeto de tipo Scanner (Clase que provee la biblioteca de Java, siempre hay que importarla para que funcione correctamente: import java.util.Scanner; antes de public class).

Donde:
Scanner es la nombre de la clase.
sc es el nombre que seleccionaron en este caso para el Scanner (podr铆a ser cualquier otro, yo lo llamo input en los ejemplos de abajo).
**new **es la palabra reservada para instanciar un objeto (ver POO).
(System.in) es el final de la declaraci贸n, siempre.

Luego, para obtener el valor que se ingresa por teclado, lo
tendremos que asignar a una variable que sea del tipo de
dato que esperamos recibir.

variable=input.TipodeIngreso();
input.nextInt(), captura un numero entero desde el
teclado. Se asigna a una variable de tipo int.
鈥** input.nextDouble()**, captura un numero decimal desde el
teclado. Se asigna a una variable de tipo double.
input.nextLine(): captura toda la linea. Se asigna a una
variable String
鈥 Input.nextChar() ++no existe! ++Para capturar un char
utilizaremos
input.next().charAt[0];

UN EJEMPLO COMPLETO:

Import java.util.Scanner;
public class IngresoDatos{
private static Scanner input = new Scanner(System.in);
public static void main(String[] args){
int num;//Declaramos una variable que permite almacenar n煤meros enteros
double num2; //Declaramos una variable que permite almacenar n煤meros con decimal
num=input.nextInt();
System.out.println(鈥淓l Numero ingresado es: 鈥 + num);

num2= input.nextDouble();
System.out.println(鈥淓l Numero ingresado es: 鈥 + num2)
}
}

En resumen:

  • While: Primero eval煤a la condici贸n, despues ejecuta.
  • Do While: Primero Ejecuta, despues eval煤a la condici贸n

驴Por que capturar el valor con Interger.valueOf y no simplemente con sc.nextInt();?

import java.util.Scanner;
public class DoWhileLoop {

public static void main(String[] args) {

    int opcion = 0;



    do {
        System.out.println("Seleccione una opcion");
        System.out.println("1: Peliculas");
        System.out.println("2: Series");
        System.out.println("0: Salir");

        Scanner sc =new Scanner(System.in);
        opcion = sc.nextInt();
                


        switch (opcion){
            case 1:
                System.out.println("Usted ha seleccionando peliculas. ");
                break;
            case 2:
                System.out.println("Usted ha seleccionado Series. ");
                break;
            case 0:
                System.out.println("Usted ha salido del programa. ");
                break;
            default:
                System.out.println("Eliga una opcion valida");

        }

    }while (opcion != 0);

}

}

no se saltan con otros temas lo confunden a uno con scaner

Tambi茅n conocidas como estructuras iterativas, el ciclo do- while cuya sintaxis es:

do {
      statement(s)
} while (expression);

Este ciclo tambi茅n itera mientras se verifica la condici贸n, pero a diferencia del clico while, en este caso la entrada al ciclo no est谩 condicionada; por lo tanto, las acciones definidas dentro del do-while se ejecutaran al menos una vez

Ejemplo

class DoWhileDemo {
    public static void main(String[] args){
        int count = 1;
        do {
            System.out.println("Count is: " + count);
            count++;
        } while (count < 11);
    }
}```

Count is: 1
Count is: 2
Count is: 3
Count is: 4
Count is: 5
Count is: 6
Count is: 7
Count is: 8
Count is: 9
Count is: 10

馃懢 do-while permite que se ejecute al menos una vez las sentencias. En cambio while solo permite ejecutar las sentencias si se cumple la condici贸n.

Agregu茅 unas cosas m谩s

<import java.util.Scanner;
public class SentenceWhileAndDoWhile {
    public static void main(String[] args) {
        int responsise = 0;


        do{
            System.out.println("Ingresa un n煤mero: ");
            System.out.println("1. Movies");
            System.out.println("2. Series");
            System.out.println("0. Salir");

            Scanner sc = new Scanner(System.in);
          responsise = Integer.valueOf(sc.nextLine());
          switch (responsise){
              case 0:
                  System.out.println("Gracias por visitarnos");
                  break;
              case 1:
                  System.out.println("Estas en la secci贸n de pel铆culas");
                  System.out.println("Si deseas regresar ingresa 1 ");
                  System.out.println("Si deseas salir ingrsa 0");
                  responsise = Integer.valueOf(sc.nextLine());
                  break;
              case 2:
                  System.out.println("Estas en la secci贸n de series");
                  System.out.println("Si deseas regresar ingresa 1 ");
                  System.out.println("Si deseas salir ingrsa 0");
                  responsise = Integer.valueOf(sc.nextLine());
                  break;
              default:

                      System.out.println("Ingresaste un n煤mero equivocado");

          }

        }while(  responsise!= 0 );


    }

}> 

Practicando bucle do While 馃捇




Problema: Al ejecutar el programa intentaba ingresar un n煤mero y obten铆a error.
Soluci贸n: Modificar la l铆nea:
response = Integer.valueOf(sc.nextLine());
De la siguiente manera:
response = Integer.valueOf(sc.nextInt());

Tengo una duda, para qu茅 sirve Integer.valueOf? Le铆 que es un tipo de casteo, pero si el usuario ingresa valores enteros porque response admitir谩 valores enteros, no ser铆a mejor solo colocar:
response = sc.nextInt();
Corrijanme si estoy errada, gracias.

Comparto mi codigo de esta clase

import java.util.Scanner;

public class doWhileLoop
{
    public static void main(String[] args) {
        int response = 0;

        do {
            System.out.println("Selecciona el menu de la opcion deseada");
            System.out.println("01. Peliculas");
            System.out.println("02. Series");
            System.out.println("03. Animes");
            System.out.println("0. Salir de este menu");

            Scanner sc = new  Scanner(System.in);
            response = Integer.valueOf(sc.nextLine());

            switch (response){
                case 0:
                    System.out.println("Gracias por visitarnos");
                    break;
                case 1:
                    System.out.println("Accediste a peliculas");
                    break;
                case 2:
                    System.out.println("Accediste a series");
                    break;
                case 3:
                    System.out.println("Onichan");
                    break;
                default:
                    System.out.println("Selecciona una opcion valda-");
                    break;
            }
        }while (response != 0);
    }
}

Les recomiendo lo siguiente:
System.out.printf("Digite un numero: ")

Ya que si quieres poner el numero alado de Digite un numero podras hacerlo y se ve mas ordenado.

Paso ejemplo de como se veiria:
![](

Do-While es un bucle que permite una ejecuci贸n y luego eval煤a si debe volver a repetirse, es el m谩s recomendado a la hora de hacer un men煤.

Excelente ejemplo!

Bucles do While y While
.
Bucles: ejecuta una parte de nuestro c贸digo una cantidad de veces mientras se cumpla la condici贸n.
Do While: ejecuta nuestro c贸digo, despu茅s la evaluara.
While: eval煤a que nuestro c贸digo cumpla con la condici贸n y despu茅s ejecutara el c贸digo.
.
Ciclos infinitos: las instrucciones no se detendr谩n nunca si la condici贸n no cambia.

Para usar la clase Scanner (por lo menos en Netbeans) hay que importarla (aunque la IDE lo hace para dar una mano, pero vale la pena mencionarlo)

import java.util.Scanner;

Scanner es una clase en el paquete java.util utilizada para obtener la entrada de los tipos primitivos como int, double etc. y tambi茅n String. (Si, String no es un dato primitivo, es una clase, pero eso creo que lo veremos en el futuro)

Siempre me ha parecido raro que el do while hay que ponerle punto y coma al final pero al while no.

Con do while, al menos una vez se entrar谩 al bucle y en while s贸lo se entrar谩 si se cumple la condici贸n.

Siempre muy clara la explicaci贸n.

Estaba realizando ese mismo ejercicio en java v11. No se si es por la versi贸n pero pide serrar sc en el bloque de c贸digo.
public class DoWhile_31_1 {
    public static void main(String[] args){
        int tabla_1 = 1;
        int contador_1 = 1;
        int resultado = 0;

        do {
            System.out.println("Contador es: " + tabla_1 + " X " + contador_1 + " = " + resultado);
            tabla_1 = contador_1 + 1; // tambi茅n podr铆amos declararlo como contador++; para que realice el aumento de uno mas uno.
            contador_1++;

            resultado = tabla_1 * contador_1;
        } while (tabla_1 <= 10 && contador_1 <= 10);
    }
}
 

Buenos d铆as compa帽eros

Alguno a podido al usar IntelliJ IDEA , bajar el consumo de memoria, alguien tiene alg煤n truco para bajar el nivel de memoria de este IDE?

listo

Muy buena clase!! Apuntes
int response = 0;

   do {
        System.out.println("Selecciona el numero de la opcion deseada");
        System.out.println("1. Movies");
        System.out.println("2. Sereies");
        System.out.println("0. Salir");

        Scanner sc = new Scanner(System.in);
         response = Integer.valueOf(sc.nextLine());

          switch (response){
              case 0:
                  System.out.println("Gracias por visitarnos");
                  break;
              case 1:
                  System.out.println("Movies");
                  break;
              case 2:
                  System.out.println("Series");
                  break;
              default:
                  System.out.println("Selecciona una opcion correcta");

          }

    } while (response != 0);
   System.out.println("Se termino el programa");
/**
 * Descripci贸n: Funci贸n que muestra un men煤 para seleccionar contenido multimedia
 */
public class DoWhileLoop {
    public static void main(String[] args) {
       int response = 0;

        do {
            System.out.println("Selecciona el n煤mero de la opci贸n deseada: ");
            System.out.println("1. Pel铆culas");
            System.out.println("2. Series");
            System.out.println("0. Salir");

            Scanner scanner = new Scanner(System.in);
            response = Integer.valueOf(scanner.nextLine());

            switch(response){
                case 0:
                    System.out.println("Gracias por visitarnos");
                    break;
                case 1:
                    System.out.println("Pel铆culas");
                    break;
                case 2:
                    System.out.println("Series");
                    break;
                default:
                    System.out.println("Selecciona una opci贸n v谩lida");
            }
        } while (response != 0);

        System.out.println("Se termin贸 el programa");
    }
}

Excelente explicacion acerca del uso de el do while y el while

Genial!!

El do-while se usa cuando por lo menos en una ocasi贸n el c贸digo que tenemos dentro se debe ejecutar, mientras que el while se utiliza en casos en los que puede que ese c贸digo no se ejecute ni una vez. 馃槂 馃槂

De regreso con el curso 馃槂

Genial, no estaba seguro como recibir un dato pero ya en esta clase lo aclare.

Excelente!

public class BubleWhile {

public static void main(String[] args) {
    /*
    WHILE
    --  si la condicion nunca se cumple no ingresa al blucle
     Si la condicion es verdadera ejecuta nuevamente el codigo
     Si la condicion es falsa sale del bucle
     while (condicion){
     sentencias
     }

     DO WHILE:
     Ejecuta almenos una vez.
     Entra al ciclo, verifica si la opcion se cumple y lo ejecuta nuevamente
     do {

     }while (condicion);
     */

    // EJEMPLO CON DO WHILE
    int responce=0;

    do {
        System.out.println("SELECCIONA  EL NUMERO DE LA OPCION DESEADA");
        System.out.println("1.- MOVIES");
        System.out.println("2.- SERIES");
        System.out.println("3.- EXIT");
        Scanner sc = new Scanner (System.in);
        responce = sc.nextInt();

        switch (responce){
            case 1:
                System.out.println("HA SELECCIONADO EL MENU MOVIES");
                break;
            case 2:
                System.out.println("HA SELECCIONADO EL MENU SERIES");
                break;
            case 3:
                System.out.println("HA SELECCIONADO SALIR DE LA APLICACION");
                break;
            default:
                break;
        }
       } while (responce<3 && responce>0 );
}

}

Me encanto la clase!

public static void main(String[] args) {
int response=0;
do{
System.out.println(鈥淪LECCIONE LA OPCION DESEADA鈥);
System.out.println(鈥1.MOVIE鈥);
System.out.println(鈥1.SERIE鈥);
System.out.println(鈥2.COMEDIA鈥);
System.out.println(鈥3.ROMANSE鈥);
System.out.println(鈥4.TERROR鈥);
System.out.println(鈥5.DOCUMENTAL鈥);

                            Scanner teclado=new Scanner (System.in);
                            response= Integer.valueOf(teclado.nextLine());
            switch (response){
                case 0:
                    System.out.println("gracias por visitarnos");
                    break;
                case 1:
                    System.out.println("SERIE");
                    break;
            case 2:
                    System.out.println("COMEDIA");
                    break;
            case 3:
                    System.out.println("ROMANSE");
                    break;
                        case 4:
                    System.out.println("TERROR");
                    break;
                    
                     case 5:
                    System.out.println("DOCUMENTAL");
                    break;
                    
                     default:
                         System.out.println("------SELECCIONE UNA OPCION CORRECTA-----");
            }

}while(response !=0);
System.out.println(鈥淔IN DEL PROGRAMA鈥);
}

}

El (if) lo que hace es saltar a la instrucci贸n POSTERIOR deseada si la condici贸n es FALSA.
El (do while) y el (while) hacen lo mismo pero en lugar de saltar hacia una instrucci贸n posterior lo hace hacia una ANTERIOR si la condici贸n es VERDADERA.
La diferencia entre el (do while) y el (while) reside en el momento de hacer la pregunta. El primero lo hace DESPU脡S de ejecutarse las instrucciones y el segundo lo hace ANTES de ejecutarse las instrucciones.

import java.util.Scanner;

public class DoWhile {
    public static void main(String[] args) {
        menu();
    }
    /**
     * despliega un menu para acceder a peliculas o series
     * */
    public static void menu(){
        Scanner sc = new Scanner(System.in);
        int opcion;
       do{
           System.out.println("Slecciona la opcion que dese:" +
                   "\n1. Peliculas" +
                   "\n2. Series" +
                   "\n0. Salir");
           opcion = Integer.valueOf(sc.nextInt());
           switch (opcion){
               case 1:
                   System.out.println("Peliculas");
                   break;
               case 2:
                   System.out.println("Series");
                   break;
               case 0:
                   System.out.println("Gracias, vuelva pronto.");
                   break;
               default:
                   System.out.println("Selecciona una respuesta correcta.");

           }
       }while(opcion !=0);
    }
}

Excelente explicaci贸n de los bucles While y Do While

Excelente manera de utilizar el ciclo Do While en combinaci贸n de la herramienta Switch para crear un men煤, muchas gracias por la clase

buenisimo!

No se si alguno sepa usar Jupyter Lab, pero es una muy buena erramienta para practicar este tipo de ejerciciossin necidad de utilza un id

int response = 0;

do{ System.out.println(鈥淪eleecione el n煤mero de la opci贸n deseada鈥);
System.out.println(鈥1. Movies鈥);
System.out.println(鈥2. Series鈥);
System.out.println(鈥0. Salir鈥);

Scanner sc = new Scanner(System.in);
response= Integer.valueOf(sc.nextLine());

switch(response){

case 0:
System.out.println(鈥淕racias por visitarnos鈥);
break;

case 1:
System.out.println(鈥淢ovies鈥);
break;

case 2:
System.out.println(鈥淪eries鈥);
break;
default:
System.out.println(鈥淪elecciones una opcion correcta鈥);

}

}while(response !=0);

oh asi puedo crear menus basicos, genial 馃槂

import java.util.Scanner;

public class DoWhileLoop {
public static void main(String[] args) {
int response =0;

    do{
        System.out.println("Selecciona el n煤mero de la opci贸n deseada:");
        System.out.println("1. Movies ");
        System.out.println("2. Series ");
        System.out.println("0. Salir");

        Scanner sc = new Scanner(System.in);
        response= Integer.valueOf(sc.nextLine());

        switch(response){
            case 0:
                System.out.println("Gracias por visitarnos");
                break;
            case 1:
                System.out.println("Movies");
                break;
            case 2:
                System.out.println("Series");
                break;
            default:
                System.out.println("Selecciona una opcion correcta");
        }
    }while(response !=0);
    System.out.println("Programa finalizado");
}

}
//Omar Alban Becerra

import javax.sound.midi.Soundbank;
import java.sql.SQLOutput;
import java.util.Scanner;
import java.util.function.DoubleToIntFunction;

public class DoWhileLoop {
    public static void main(String[] args) {
        int response = 0;

        do {
            System.out.println("Selecciona el numero de la opci贸n desead");
            System.out.println("1. Movies");
            System.out.println("2. Series");
            System.out.println("0. Salir");

            Scanner sc = new Scanner(System.in);
            response = Integer.valueOf(sc.nextLine());

            switch (response){

                case 0:
                    System.out.println("Gracias por visitarnos");
                    break;
                case 1:
                    System.out.println("Movies");
                    break;
                case 2:
                    System.out.println("Series");
                    break;
                default:
                    System.out.println("Selecciona la opci贸n correcta");
            }

        }while(response != 0);

        System.out.println("Se termino el programa");
    }
}

Otro gran ejemplo en el que se usa el Do While Loop puede ser como contadores o detecci贸n de fallos, aunque existen otros loops con usos m谩s espec铆ficos a estos

Muy claro todo y muy interesante la clase Scanner.

Tambien pueden agregar el case default por si el usuario ingresa un valor no contemplado en el ciclo:

 switch (responce){
                case 0:
                    System.out.println("Gracias por visitarnos");
                    break;
                case 1:
                    System.out.println("Peliculas disponibles");
                    break;
                case 2:
                    System.out.println("Series disponibles");
                    break;
                default:
                    System.out.println("Seleccione una opcion valida");
            }
    public static void main(String[] args) {
        int respuesta=0;
        do{
            System.out.println("Selecciona la opcion deseada: ");
            System.out.println("1. Movies");
            System.out.println("2. Series");
            System.out.println("0. Salir");

            Scanner sc = new Scanner(System.in);
            respuesta = Integer.valueOf(sc.nextLine());

            switch (respuesta) {
                case 0:
                    System.out.println("Adios...");
                    break;
                case 1:
                    System.out.println("Elegiste peliculas");
                    break;
                case 2:
                    System.out.println("Elegiste series");
                     break;
                default:
                    System.out.println("Selecciona una opcion correcta.");
            }
        }while (respuesta !=0);
        System.out.println("Fiiiin...");
    }```

Super claro 馃槂

excelente

Hace unos meses casi quemo la pc por este tipo de ciclos

Creo que lo mas interesante de esta clase y que al menos yo sabia menos fue el tema del Scanner y fue lo que menos tiempo tuvo de explicarse, pero ta鈥

Yo no utilizo el Wrapper.

Integer.valueOf(sc)

Utilizo de la siguiete forma.

response = sc.nextInt();

Todo muy claro. Gracias

Yo lo aplique a un jueguito aqu铆 mi c贸digo.
Es importante considerar que en el caso de do primero ejecuta las instrucciones y luego verifica puede haber casos que eso haga que no funcione tu c贸digo como quieres.

import java.nio.charset.Charset;
import java.util.Scanner;

public class DoWhile {
    public static void main(String[] args) {

       boolean gameOver = false;
       boolean gameWin = false;
       char still = 's';
       int level = 0;
       do{
           System.out.println("You're Playing");
            still = requestGame();

            // playing
            if(still != 's'){
                gameOver = true;
            }else{
                level ++;
            }
            // winning
            if(level == 5){
                gameWin = true;
            }

            // printing response
           if(gameOver){
               System.out.println("GAME OVER");
           }else if(gameWin){
               System.out.println("WINNER");
           }
       }while (!gameOver && !gameWin);
    }


    /**
     * Manage the input of the game with a scanner
     * @return Char that represents that input
     * @exception StringIndexOutOfBoundsException if the string input is empty
     * @author Alejandro AS
     * */
    public static char requestGame(){
        Scanner sc = new Scanner(System.in);
        try{
            return (sc.nextLine().charAt(0));
        }catch (StringIndexOutOfBoundsException e){
            //  manage the empty string problem
            return  ' ';
        }
    }
}
<h1>Notas & Adici贸n al c贸digo</h1>

Not茅 que cuando por ejemplo se entraba al programa algo como 鈥渄adsadadasdsajdskjfs鈥 o 鈥溍竳酶231鈥 en vez de integers, Java simplemente no podia guardar eso en una variable de tipo int, lo que generaba que el programa crasheara inmenentemente y mostrara algo como:

馃摑----TEST-MENU----馃摑

1)	Echo 'Hello World!'
2)	Echo 'LMFAO'
0)	Exit the program

Type here 馃憠 czcczxd
Exception in thread "main" java.util.InputMismatchException
	at java.base/java.util.Scanner.throwFor(Scanner.java:939)
	at java.base/java.util.Scanner.next(Scanner.java:1594)
	at java.base/java.util.Scanner.nextInt(Scanner.java:2258)
	at java.base/java.util.Scanner.nextInt(Scanner.java:2212)
	at DoWhileLoop.main(DoWhileLoop.java:22)

Mi soluci贸n fue:

  1. recibir el input como un String y guardarla en una variable que llam茅 test
  2. usar dentro de un try-catch un Integer.parseInt(test); para intentar formatear la var test (el input del usuario) a una variable que llam茅 uResponse en forma de Integer (ojo, int y Integer no son la misma cosa, int es un tipo de variable primitivo mientras que Integer es una wrapper class, y esta es un tipo de objeto que contiene tipos de informaci贸n primitivos. En resumen, convierten datos primitivos como int, byte, short, char, etc. a objetos, y esto se hace cuando se desea modificarlos con metodos)
  3. como se intenta formatear la informaci贸n recibida a un Integer, si no se puede el try-catch lo notar谩 y capturar谩 esta excepci贸n, de esta manera podremos poner el mensaje que nosotros queramos y avitaremos que el programa crashee.
<h3>Code:</h3>
import java.lang.*;
import java.util.Scanner;

/**
 * DoWhileLoop
 */
public class DoWhileLoop {

    public static void main(String[] args) {
        int uResponse = 0;
        String test = "";
        //boolean testBool = false; //only if var verification is needed

        do {
            System.out.printf("\n\n馃摑----TEST-MENU----馃摑\n\n");

            System.out.printf("1)\tEcho 'Hello World!'\n");
            System.out.printf("2)\tEcho 'LMFAO'\n");
            System.out.printf("0)\tExit the program\n");

            Scanner keyboard = new Scanner(System.in);

            System.out.printf("\nType here 馃憠 ");


            do {
                try {
                    test = keyboard.nextLine();
                    uResponse = Integer.parseInt(test);
                    //testBool = false;
                    break;
                } catch (Exception e) {
                    System.out.printf("ERROR (鉂): this program only supports integers as valid commands\n");
                    //testBool = true; //only if var verification is needed
                    System.exit(1);
                   //TODO: handle exception
                }
            } while (true);

            switch (uResponse) { // users' answer
                case 0:
                    System.out.printf("\nOkay then, see you later!\nhope I helped 馃槑\n\n");
                    System.exit(0);
                    break;
                case 1:
                    lines();
                    System.out.printf("\nHello World!馃寧\n");
                    lines();
                    break;
                case 2:
                    lines();
                    System.out.printf("\nLMFAO!馃槀\n");
                    lines();
                    break;
                default:
                    System.out.printf("\nERROR (鉂): command %d was not recognized...\nThe only acceptable commands are (0|1|2).\n", uResponse);
                    System.exit(1);
                    break;
            }

        } while (uResponse != 0); //user does not exits the program
    }

    public static void lines() {
        System.out.printf("----------------------------------------");
    }
}

Output #1:



馃摑----TEST-MENU----馃摑

1)	Echo 'Hello World!'
2)	Echo 'LMFAO'
0)	Exit the program

Type here 馃憠 1
----------------------------------------
Hello World!馃寧
----------------------------------------

馃摑----TEST-MENU----馃摑

1)	Echo 'Hello World!'
2)	Echo 'LMFAO'
0)	Exit the program

Type here 馃憠 2
----------------------------------------
LMFAO!馃槀
----------------------------------------

馃摑----TEST-MENU----馃摑

1)	Echo 'Hello World!'
2)	Echo 'LMFAO'
0)	Exit the program

Type here 馃憠 0

Okay then, see you later!
hope I helped 馃槑

Output #2:



馃摑----TEST-MENU----馃摑

1)	Echo 'Hello World!'
2)	Echo 'LMFAO'
0)	Exit the program

Type here 馃憠 yolo
ERROR (鉂): this program only supports integers as valid commands

Output #3:



馃摑----TEST-MENU----馃摑

1)	Echo 'Hello World!'
2)	Echo 'LMFAO'
0)	Exit the program

Type here 馃憠 酶
ERROR (鉂): this program only supports integers as valid commands
<h1>Explicaci贸n mas a detalle de mi comentario</h1>
  • Assure user input type

    For this I will use nextLine() and parseInt() to see if it is an int:

    Scanner keyboard = new Scanner(System.in); 
    
    //first initialize an int var and a String test var
    
    int uResponse = 0;
    String testString = "";
    
    try {
    	System.out.printf("Type something: ");
    	//out
    	test = keyboard.nextLine();
    	uResponse = Integer.parseInt(test);
    	break;
    } catch (Exception e) {
    	//TODO: handle exception	
    	System.out.printf("ERROR (鉂): this program only supports integers as valid commands\n");
      System.exit(1);         
    }
    
<h3>Why this works?</h3>

The Integer.parseInt() java method is used primarily in parsing a String method argument into an Integer object. The Integer object is a wrapper class for the int primitive data type of java API.

So technically we are converting whatever the user types, into an Integer (not an int), and so if we get something like hello 123 as an input, it will not be able to parse it; here is where the exception is generated.

Same will work for float, String, byte, among other types:

public class Test {
    public static void main(String args[]) throws Exception {

        String input;
        int ch1;
        float ch2;
        String ch3;

        Scanner one = new Scanner(System.in);

        input = one.nextLine();

        try {
            ch1 = Integer.parseInt(input);
            System.out.println("integer");
            return;
        } catch {
					(NumberFormatException e) 
				}

        try {
            ch2 = Float.parseFloat(input);
            System.out.println("float");
            return;
        } catch (NumberFormatException e) {

        }
        try {
            ch3 = String.valueOf(input);
            System.out.println("String");
        } catch (NumberFormatException e) {

El while si es verdad que siempre se utiliza para realizar estos tipos de men煤 es super 煤til en estos casos. Con el (\n) das un salto de linea para que la informaci贸n no salga toso de manera horizontal

en intelliJ presionen

  • ctrl + shift + enter
    antes de poner ;
    de nada 馃槂
public class DoWhite {
    public static void main(String[] args) {
        int response=0;
        do{
            System.out.println("Seleccione el numero de opcion deseada");
            System.out.println("1- Caldo de Gallina");
            System.out.println("2- Cau Cau");
            System.out.println("3- Parrilla de Pollo");
            System.out.println("0-Salir");

            Scanner sc= new Scanner(System.in);
            response = Integer.valueOf(sc.nextLine());
            switch (response){
                case 0:
                    System.out.println("salir");
                     break;
                case 1:
                    System.out.println("Eligio : Caldo de Gallina");
                    break;
                case 2:
                    System.out.println("Eligio : Cau Cau");
                    break;
                case 3:
                    System.out.println("Eligio : Parrilla de Pollo");
                    break;
                default:
                    System.out.println("El plato no esta en el Menu");

            }
        }while (response !=0);```

do-while: si queremos que se ejecute al menos una vez las sentencias
while: solo ejecutar las sentencias si se cumple la condici贸n

interesante

do while

El bucle while solamente decide si realizar una nueva iteraci贸n bas谩ndose en el valor de la condici贸n.

Todo muy claro.

import java.util.Scanner;

public class DoWhileLoop {
    public static void main(String[] args) {
        int  respose = 0;

        do{
            System.out.println("Escoge una opcc'ion");
            System.out.println("1. Peliculas");
            System.out.println("2. Series");
            System.out.println("0. Salir");

            Scanner sc = new Scanner(System.in);
            respose = Integer.valueOf(sc.nextLine());

            switch (respose){
                case 0:
                    System.out.println("Gracias por visitarnos.");
                    break;
                case 1:
                    System.out.println("Peliculas");
                    break;
                case 2:
                    System.out.println("Series");
                    break;
                default:
                    System.out.println("Selecciona una opcc'ion correcta.");
            }

        }while(respose != 0);

        System.out.println("Se termino el programa.");
    }

Muy bien caso de uso del do-while鈥