Contenido del curso
Primeros pasos con C#
- 6

Tipos de datos primitivos en C#
11:38 min - 7

Área de un rectángulo en C#
12:08 min - 8

var en C# para declarar variables sin tipo
05:25 min - 9

Cálculo del Área de un Círculo en C# Usando Constantes y Variables
14:39 min - 10

Operadores aritméticos en C# explicados
09:57 min - 11

Operadores lógicos AND OR NOT XOR en C#
17:30 min - 12

Operadores relacionales para comparar números en C#
11:05 min - 13

Interpolación de strings en C#
11:47 min
Bucles y estructuras de control en C#
- 14

Condicionales IF en C#: Estructura y Uso Práctico en Blackjack
15:23 min - 15

Switch en C# para máquinas de estado
11:04 min - 16

Ciclos while y do-while en C#
Viendo ahora - 17

Refactorizar el juego de 21 en C#
11:37 min - 18

Uso de ciclos FOR en programación C#
18:51 min - 19

Cómo corregir el bug del bucle for en C#
08:27 min
Próximos pasos
Ciclos while y do-while en C#
Resumen
Aprender a usar while y do-while en C# te permite transformar un programa que se ejecuta una sola vez en un sistema interactivo, como un juego de arcade que se mantiene encendido mientras haya energía. Esta lógica es clave para cualquier persona que empieza en programación y quiere construir flujos repetitivos con condiciones claras.
Para qué sirve la instrucción while en C#
La palabra while significa mientras, y se usa para crear ciclos que repiten un bloque de código siempre que una condición se cumpla [02:14]. La analogía más clara es una máquina de arcade: mientras el interruptor esté prendido y haya electricidad, el juego sigue funcionando.
En nuestro Platziino, el reto era que después de jugar una mano de 21, el programa volviera al menú en lugar de cerrarse. Para lograrlo, envolvimos toda la lógica del switch dentro de un bucle infinito.
¿Qué hace while(true) en C#? Crea un bucle infinito que ejecuta el código de su interior una y otra vez. Equivale a decir mientras 1 sea igual a 1, repítete siempre.
Cómo construir un bucle infinito con while
La estructura básica es escribir while(true) seguido de llaves que contengan el bloque de código a repetir. Dentro de ese bucle colocamos el switch con la variable de control, de modo que al terminar un caso, el flujo regresa al inicio y vuelve a evaluar la condición.
El truco está en actualizar la variable de control dentro de cada caso. Si el jugador pierde o gana en el caso 21, asignamos de nuevo switchControl al valor menú, y así el ciclo regresa al menú principal en lugar de quedarse atrapado mostrando el mismo resultado.
Cuál es la diferencia entre while y do-while
La diferencia está en cuándo se evalúa la condición [07:32]. El while clásico revisa la condición antes de ejecutar, así que si no se cumple desde el inicio, el código de adentro nunca corre. El do-while, en cambio, ejecuta el bloque al menos una vez y después evalúa la condición al final.
Para la mecánica del juego de cartas, do-while funcionó mejor porque queríamos que el jugador recibiera siempre su primera carta antes de preguntarle si quería otra.
- while: evalúa primero, ejecuta después.
- do-while: ejecuta primero, evalúa después.
- Ambos repiten el bloque mientras la condición sea verdadera.
Cómo se escribe un do-while paso a paso
La estructura comienza con la palabra do, abre llaves, escribe el código que quieres repetir, cierra llaves y termina con while seguido de la condición entre paréntesis y punto y coma. Ese punto y coma final es obligatorio y es una de las trampas más comunes.
Dentro del do colocamos el mensaje toma tu carta jugador, generamos un número aleatorio, lo sumamos al total del jugador, mostramos qué carta salió y preguntamos si desea otra carta.
Cómo generar números aleatorios con Random.Next
Para que el juego sea impredecible necesitamos cartas aleatorias entre 1 y 12, los valores típicos de una baraja [11:58]. C# ofrece la clase System.Random, que vive en su biblioteca interna de funcionalidades.
El proceso tiene dos pasos: primero instanciar la clase con la palabra clave new, escribiendo Random random = new System.Random();. Luego usar el método random.Next(1, 12) para obtener un número dentro de ese rango.
¿Qué hace la palabra new en C#? Crea una nueva instancia de una clase. En este caso, genera un objeto Random listo para producir números aleatorios cada vez que llamemos a su método Next.
Esta variable número la declaramos junto con las demás (totalJugador, totalDealer) inicializadas en cero, para mantener el orden del código y evitar declarar variables dentro del ciclo, una mala práctica que conviene corregir desde el inicio.
Cómo sumar cartas al total del jugador
Cada vez que sale una carta, ejecutamos totalJugador = totalJugador + numero;. Así acumulamos el valor previo más el nuevo número generado. Después imprimimos el resultado con interpolación de cadenas usando el signo $ antes de las comillas:
csharp Console.WriteLine($"Te salió el: {numero}");
Ese signo dólar le dice a C# que dentro del texto vas a inyectar variables encerradas entre llaves.
Cómo combinar condiciones con el operador lógico OR
Un detalle importante es manejar las distintas formas en que un usuario puede responder. Si solo aceptamos la respuesta sí en minúsculas, alguien que escriba Sí con mayúscula o yes en inglés rompería el flujo.
La solución es usar el operador lógico OR, que en C# se escribe con doble barra vertical ||. La condición del while queda así: mientras la respuesta sea igual a sí, o sea igual a Sí, o sea igual a yes, repite el ciclo [16:45].
==es el operador de comparación, no de asignación.||significa o, basta con que una condición se cumpla.- Cada
Console.ReadLine()lee una entrada nueva del usuario.
Y aquí viene un detalle clave: llamar a Console.ReadLine() tres veces dentro de la misma condición hace que el programa pida tres entradas distintas, lo cual no es lo que queremos. Esa es justo la razón para aprender factorización de código en la siguiente lección, donde guardaremos la respuesta una sola vez en una variable y la compararemos contra los tres valores posibles.
¿Te animas a escribir tu propio do-while antes de la próxima clase? Comparte en los comentarios cómo manejaste la condición de salida.