Conocer a Java como lenguaje de programación
¿Qué es Java?
Versiones de Java y JDK
Las herramientas más usadas de Java
Creando un entorno de desarrollo en Java en Windows
Creando un entorno de desarrollo en Java en Mac
Creando un entorno de desarrollo en Java en Linux
Escribe tu primer Hola Mundo en Java
Etapas de la programación en Java
La JShell de Java
Trabajar con Variables en Java
Variables en Java
Actualizando variables
Convención de Nombres en Java
Técnica de Naming: Camel Case
Tipos de datos numéricos
Tipos de datos char y boolean
Operadores de Asignación, Incremento y Decremento
Operaciones matemáticas
Cast en variables: Estimación y Exactitud
Casteo entre tipos de datos
Archivos .JAR
¡A practicar!
Aplicar condicionales en Java
Sentencia if
Alcance de las variables y Sentencia ELSE
Operadores Lógicos y Expresiones booleanas
Sentencia Switch
Escribir funciones en Java
¿Para qué sirven las funciones?
Implementa Funciones en Java
Java Docs
Javadoc en funciones
Tags Java Docs
Analizar e implementar Ciclos en Java
Bucle do While
Operador Ternario y Bucle While
Bucle For
Break, Continue y Return
Arrays
Declarando Arreglos
Indices y búsqueda de elementos en Arrays
Ciclos For anidados
Continua con el Curso de Programación Orientada a Objetos en Java
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
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 91
Preguntas 20
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(“El Numero ingresado es: “ + num);
num2= input.nextDouble();
System.out.println(“El Numero ingresado es: “ + num2)
}
}
En resumen:
¿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
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.
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.
Que pena que se hayan mostrado cosas nuevas sin hablar de ellas a detalle 😦
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());
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 );
}
}>
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:
 {
while (true){
System.out.println(" Hahaha! Your RAM is mine! ");
}
}
}
import java.util.Scanner;
public class DoWhileLoop2 {
public static void main(String[] args) {
var i =1;
Scanner sc = new Scanner(System.in);
var numeroTabla = sc.nextInt();
System.out.println("Imprimiendo la tabla del: " + numeroTabla);
do {
System.out.println(numeroTabla + " X " + i + " = " + numeroTabla * i);
i++;
} while (i<=10);
}
}
Noté que cuando por ejemplo se entraba al programa algo como “dadsadadasdsajdskjfs” 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:
test
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)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.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
Esto es lo que hice XD espero les guste:
import java.util.Scanner;
/**
* @author chbrus
* @version 1.0
*
* <h1>Ejemplo de uso para el loop do while </h1>
* */
public class DoWhileLoop {
public static void main(String[] args) {
int response = 0;
Scanner sc = new Scanner(System.in);
do {
System.out.println("Selecciona el numero de la opcion deseada");
System.out.println("1. Escritorio");
System.out.println("2. Descargas");
System.out.println("3. Documentos");
System.out.println("4. Imagenes");
System.out.println("5. Musica");
System.out.println("6. Salir");
response = Integer.valueOf(sc.nextLine());
System.out.print("\n" + "POSICION: C:/Users/cbrun/");
switch (response)
{
case 1:
System.out.print("Escritorio/");
break;
case 2:
System.out.print("Descargas/");
break;
case 3:
System.out.print("Documentos/");
break;
case 4:
System.out.print("Imagenes/");
break;
case 5:
System.out.print("Musica/");
break;
case 6:
System.out.println("\n" + "Gracias por usar mi programa");
break;
default:
System.out.println("ERROR" + "\n" + "Opcion invalida");
}
System.out.print("\n");
} while (response != 6);
}
}
Excelente explicación profe!
Solo para agregar.
Me marcaba un error al usar Scanner. Yo ya tenía el JDK 17 LTS y estoy usado neatbeans como IDE.
TUve que importar la clase abajo de package para poder usar la funcion Scanner de esta manera:
import java.util.Scanner;
Por si alguien en el futuro presenta el mismo problema.
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);
}
}
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ú.
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.
Una linea de codigo se va estar repitiendo tantas veces como nuestra condicion lo diga.
Las llaves siempre definen el scoope en el codigo.
Despues de la condicion se pone ;
While: Va a comenzar una sentencia con flujo estructurado, despues va entrar a una condicion (donde se pone una operacion a ser evaluada por la computadora), dependiendo del resultado booleano, si el resultado es true entonces va ejecutar una serie de sentencias que van a estar definidas en el comportamiento del while, cuando terminen las series va volver a la condicion. Hasta que la condicion no se cumpla podemos decir que se sale del ciclo, el control de flujos se sale y puede ejecutar lo que esta fuera del codigo.
Do While: dentro de las variable se dejan las variables o instrucciones
Nadie:
El ciclo do while viendo que la condición se sigue cumpliendo:
Mi código de la clase (NetBeans 16, Java 19):
Les comparto como he llevado a cabo el ejemplo que se vio en la clase. Básicamente, busqué evitar reescribir ciertas partes del código, también lo trabaje de forma que se ejecute solo en el main(usando POO). Claro esto se puede mejorar aún más jaja
package temasvistos;
import java.util.Scanner;
public class doWhile {
public int response = 0;
public void selectCinema() {
// Arreglo de cines
String[] cine = {"cinepolis","cinemex","cinebox"};
do {
//Mostramos opciones de cinemas
System.out.println("Selecciona el numero de la opcion deseada");
/* Recorremos el array para obtener el nombre de los cines
* realizamos una suma para darle formato y
* que no se duplique el valor 0 ejem:
* 1. cinepolis
*/
for(int i = 0; i < cine.length; i++) {
System.out.println((i+1) + ". " + cine[i]);
}
System.out.println("0. Salir");
//Obtenemos opcion elegida
Scanner sc = new Scanner(System.in);
response = Integer.valueOf(sc.nextLine());
switch(response) {
case 0:
System.out.println("Gracias por visitarnos");
break;
case 1:
case 2:
case 3:
/*obtenemos el nombre del cine.
* Realizamos una resta para obtener el nombre correct ejem:
* cinepolis tiene la posicion 0 --> cine[0] = cinepolis
* por lo tanto hacemos lo siguiente:
* response=1
* cine[1-1] --> cine[0] = cinepolis
* */
System.out.println("Bienvenido a " + cine[response - 1]);
break;
default:
System.out.println("Selecciona una opcion correcta");
}
}while(response != 0);
System.out.println("Hemos terminado");
}
}
Puede ser que Java no compile o exista un error como:
"Resource leak: ‘sc’ is never closed"
Para solucionarlo, es conveniente instanciar la Clase Scanner fuera del do-while, y cerrarla al finalizar el loop.
import java.util.Scanner;
public class DoWhile {
public static void main(String[] args) {
int response = 0;
Scanner sc = new Scanner(System.in); // INSTANCE OF
do {
...
} while (response != 0);
sc.close(); // IMPORTANT
System.out.println("End of the program");
}
}
Excelente ejemplo de Do While
<import java.util.Scanner;
public class DoWhile {
public static void main(String[] args) {
int response = 0;
do{
System.out.println("Seleccione 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 no valida");
}
} while (response != 0);
System.out.println("Se terminó el programa");
}
}
>
e estudiado por largo tiempo programación y esta es la primera vez que entiendo a la perfección el do while gracias @anahí
Se que se puede hacer con una mejor abstraccion y mejos hardcodding pero aun no se como pasar el tipo de una funcion en otra xD asi que bueno aqui va:
import java.util.Scanner;
public class Do_While {
public static void main(String[] args) {
int response = 0;
double data = 0;
double data_2 = 0;
do {
System.out.println("Insert two numbers");
Scanner sc0 = new Scanner(System.in);
data = Integer.valueOf(sc0.nextLine());
data_2 = Integer.valueOf(sc0.nextLine());
System.out.println("Select a number of a option from the menu");
System.out.println("[1] -> Addition");
System.out.println("[2] -> Subtraction");
System.out.println("[3] -> Multiplication");
System.out.println("[4] -> Division");
System.out.println("[0] -> Exit");
Scanner sc = new Scanner(System.in);
response = Integer.valueOf(sc.nextLine());
switch (response) {
case 0:
System.out.println("Goodbye");
sc0.close();
sc.close();
break;
case 1:
System.out.println("-> Addition -> \t"+ add(data, data_2));
break;
case 2:
System.out.println("-> Subtraction -> \t"+ sub(data, data_2));
break;
case 3:
System.out.println("-> Multiplication -> \t"+ mul(data, data_2));
break;
case 4:
System.out.println("-> Division -> \t"+ div(data, data_2));
break;
default:
System.out.println("Invalid option");
break;
}
} while (response != 0);
}
public static double add(double data, double data_2) {
return data + data_2;
}
public static double sub(double data, double data_2) {
return data - data_2;
}
public static double mul(double data, double data_2) {
return data * data_2;
}
public static double div(double data, double data_2) {
return data / data_2;
}
}```
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.
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(“SLECCIONE 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(“FIN 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(“Seleecione 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(“Selecciones 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 ' ';
}
}
}
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);
}
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
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…
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?
o inicia sesión.