No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Aprende todo un fin de semana sin pagar una suscripción 🔥

Aprende todo un fin de semana sin pagar una suscripción 🔥

Regístrate

Comienza en:

3D
1H
22M
44S

Ciclos While y Do While

16/20
Recursos

Aportes 9

Preguntas 1

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

o inicia sesión.

Dejaré esto por aquí …!!

Otra forma para validar si el usuario escribe, sin colocar las combinaciones de escribirlo, pueden ser que colocando el resultado que recibes en mayuscula o minuscula. Algo ocmo
resultado.toUpper() o resultado.toLower(), respectivamente

en black jack los números de las cartas se contabilizan normal y las letras “J”, “Q” and “K” son equivalentes a 10 y la A puede ser 1 or 11 por eso un A con letra es black jack porque 11 + 10 = 21

CICLOS WHILE Y DO WHILE

La instrucción while ejecuta una instrucción o un bloque de instrucciones mientras que una expresión booleana especificada se evalúa como true. Como esa expresión se evalúa antes de cada ejecución del bucle, un bucle while se ejecuta cero o varias veces. La while instrucción difiere de un bucle do , que se ejecuta una o varias veces.

En el ejemplo siguiente se muestra el uso de la instrucción while:

int n = 0;
while (n < 5)
{
    Console.Write(n);
    n++;
}
// Output:
// 01234

La estructura do while es otra estructura repetitiva, la cual ejecuta al menos una vez su bloque repetitivo, a diferencia del while o del for que podían no ejecutar el bloque.
Esta estructura repetitiva se utiliza cuando conocemos de antemano que por lo menos una vez se ejecutará el bloque repetitivo.
La condición de la estructura está abajo del bloque a repetir, a diferencia del while o del for que está en la parte superior.

El bloque de operaciones se repite MIENTRAS que la condición sea Verdadera.

Si la condición retorna Falso el ciclo se detiene. En C#, todos los ciclos repiten por verdadero y cortan por falso.
Es importante analizar y ver que las operaciones se ejecutan como mínimo una vez.

Ejemplos de uso de la estructura de iteracion WHILE:

Estructura repetitiva do while

La estructura do while es otra estructura repetitiva, la cual ejecuta al menos una vez su bloque repetitivo, a diferencia del while o del for que podían no ejecutar el bloque.

Esta estructura repetitiva se utiliza cuando conocemos de antemano que por lo menos una vez se ejecutará el bloque repetitivo.
La condición de la estructura está abajo del bloque a repetir, a diferencia del while o del for que está en la parte superior.

El bloque de operaciones se repite MIENTRAS que la condición sea Verdadera.

Si la condición retorna Falso el ciclo se detiene. En C#, todos los ciclos repiten por verdadero y cortan por falso.
Es importante analizar y ver que las operaciones se ejecutan como mínimo una vez.

Ejemplos de uso y funcionamiento de DO WHILE:

el dealer es el de la droga, el de las cartas es el crupier,
apuesto que vive en Sinaloa

Aplicando lo aprendido

using System;

var (totalJugador, totalDealer, num) = (0, 0, 0);
string message = string.Empty;
string switchControl = "menu";
int sigueJugando = 0;

/* Blackjack, Juntar 21 pidiendo, en caso de pasaswte de 21 pierdes.
cartas o en caso de tener menos
de 21 igual tener mayor puntuación que el dealer */

while (true)
{

    switch (switchControl)
    {
        case "menu":
            Console.WriteLine("Welcome al *** C A S I N O ***");
            Console.WriteLine("Escriba '21' para jugar 21");
            switchControl = Console.ReadLine();
            break;

        case "21":
            System.Random random = new System.Random();
            totalDealer = random.Next(1, 21);
            do
            {
                
                num = random.Next(1, 12);
                totalJugador = totalJugador + num;
                Console.WriteLine("Toma tu carta jugador");
                Console.WriteLine($"Te salió el número: {num}");
                Console.WriteLine("Deseas seguir jugando?");
                Console.WriteLine("1-> Si");
                Console.WriteLine("2-> No");
                sigueJugando = Convert.ToInt32(Console.ReadLine());
            }
            while (sigueJugando == 1 );
            if (totalJugador < 1 || totalJugador > 21) 
            {
                message = "Total jugador no puede ser menor que 1 o mayor a 21";
                switchControl = "menu";
            }                
            else if (totalDealer < 1 || totalDealer > 21) 
            {
                message = "Total dealer no puede ser menor que 1 o mayor a 21";
                switchControl = "menu";
            }                
            else
            {
                if (totalJugador > totalDealer) 
                {
                    message = "Felicidades, venciste al dealer";
                    switchControl = "menu";
                }                    
                else if (totalJugador <= totalDealer) 
                {
                    message = "Lo siento!... Perdiste vs el dealer";
                    switchControl = "menu";
                }
                else 
                {
                    message = "Condición no válida";
                    switchControl = "menu";
                }                    
            }
            Console.WriteLine($"Total jugador {totalJugador}");
            Console.WriteLine($"Total dealer {totalDealer}");
            Console.WriteLine(message);
            break;
        default:
            Console.WriteLine("Valor ingresado no valido en el *** C A S I N O ***");
            switchControl = "menu";
            break;

    }
}

en el do while, cuando pregunta si desea otra carta es mejor cococarlo de esta forma:
Console.WriteLine("¿Deseas otra carta? 1 es ‘si’ 2 es ‘no’");
así evitas la opción de que se escribió con mayúsculas o con minúsculas. o es 1 o es 2.

La declaración de random se hace antes del loop (do) para que no se ejecute la creación del objeto en cada iteración

se da mucha vuelta en la expicación de un do while, ir haciendolo paso por paso complica su entendimiento, debe comenzar por la estructura,
do
{

} while();
y después como funciona, a decir verdad el while tampoco lo comprendí, aunque ya tengo tiempo programando y puedo rellenar lo que me falta a prueba y error