No tienes acceso a esta clase

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

Convierte tus certificados en títulos universitarios en USA

Antes: $249

Currency
$209

Paga en 4 cuotas sin intereses

Paga en 4 cuotas sin intereses
Suscríbete

Termina en:

19 Días
0 Hrs
27 Min
29 Seg

Ciclos For

18/20
Recursos

Aportes 43

Preguntas 3

Ordenar por:

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

Para el ejercicio de convertir String a Int, aparte de la solución de Celis, tambien se puede usar esta:

    platziCoins = Convert.ToInt32(Console.ReadLine());

También existe una función para indentar u organizar el código
con:
CTRL + K, D

CICLOS FOR

El bucle for se utiliza con frecuencia en C#. Ejemplo:

for (int index = 0; index < 10; index++)
{
    Console.WriteLine($"Hello World! The index is {index}");
}

El código anterior funciona de la misma forma que los bucles while y do que ya ha usado. La instrucción for consta de tres partes que controlan su funcionamiento.

La primera parte es el inicializador de for: int index = 0; declara que index es la variable de bucle y establece su valor inicial en 0.

La parte central es la condición de for: index < 10 declara que este bucle for debe continuar ejecutándose mientras que el valor del contador sea menor que diez.

La última parte es el iterador de for: index++ especifica cómo modificar la variable de bucle después de ejecutar el bloque que sigue a la instrucción for. En este caso, especifica que index debe incrementarse en uno cada vez que el bloque se ejecuta.

Ejemplos:

Convert.ToInt32 (Console.ReadLine());

Yo para identar uso Ctrl K D
Lo uso cada segundo jejeee

Quisiera agregar algo al código en la última parte en el default cuando nos dice valor ingresado no válido en el casino, tenemos que poner abajo un switchControl = "menu"; para que nos devuelva al menu y no se nos buguee spameando el mensaje de "Valo4 ingresado no válido en el casino".

*señal

entonces una manera de solucionarlo, espero la siguiente clase a ver si esta correcta

Lo resolví, aunque puede que en algún lado te cobren coins por eso.

Ventajas y desventajas del ciclo for

Ventajas

  • Control preciso de la iteración: El ciclo for permite especificar exactamente cuántas veces se debe repetir el bloque de código. Esto proporciona un control preciso sobre la iteración y permite realizar tareas repetitivas de manera eficiente.

  • Sintaxis clara y concisa: La sintaxis del ciclo for en C# es clara y concisa, lo que facilita su lectura y comprensión . Es fácil de entender incluso para programadores principiantes.

  • Flexibilidad en la inicialización, condición y actualización: El ciclo for permite especificar una expresión de inicialización, una condición de finalización y una expresión de actualización. Esto brinda flexibilidad para controlar los valores iniciales, las condiciones de finalización y los cambios en cada iteración.

Desventajas

  • Limitado a un número fijo de repeticiones: El ciclo for está diseñado para repetir un número fijo de veces. Si no se conoce de antemano el número exacto de iteraciones, puede ser más apropiado utilizar otras estructuras de control, como el ciclo while o do while.

  • Puede ser propenso a errores: Si no se maneja correctamente, el ciclo for puede conducir a errores como bucles infinitos o fuera de límites. Es importante asegurarse de que la condición de finalización sea correcta y que las variables utilizadas en el ciclo se actualicen correctamente en cada iteración.

  • Menos legible en casos complejos: A medida que aumenta la complejidad del bloque de código dentro del ciclo for, puede volverse menos legible y más difícil de entender. En estos casos, puede ser preferible utilizar estructuras de control más simples o dividir el código en funciones más pequeñas y legibles.

Complementando la posible opción para la conversión de string a int sería:

Convert.ToInt32 (Console.ReadLine());

después de 2 días lo conseguí

Una forma mas fácil de identar es seleccionar todo el código y oprimir las teclas al mismo tiempo: "control+k+d"
Hola, realicé unas modificaciones para agregar el for a mi proyecto: ```c# Random aleatorioJugador = new Random(); Random aleatorioDealer = new Random(); int saldoJugador = 0; int gananciasJugador = 0; //Blackjack, juntar 21 o en caso de tener menos de 21, tener más puntos que el dealer Console.WriteLine("***************************************************************************"); Console.WriteLine("**********************Bienvenidos al juego BlackJack.********************** \n*Recuerda que el BlackJack consiste en obtener 21 en la suma de tus cartas* \n***o en su defecto, obtener más puntaje que el dealer sin pasarte de 21.*** \n*****************************Es hora de jugar:*****************************"); Console.WriteLine("***************************************************************************\n"); Console.WriteLine("\nPara iniciar el juego necesitamos que realices la recarga de tu saldo. ¿Cuántas fichas deseas comprar?: "); saldoJugador = int.Parse(Console.ReadLine()); for (int i = 0; i < saldoJugador; i++) { int totalDealer = 0; int totalJugador = 0; int cartasJugador = aleatorioJugador.Next(1, 11); int cartasDealer = aleatorioDealer.Next(1, 11); string message = ""; string finJuego = "No"; string ultimaCarta = "No"; string otraCarta = "Si"; string switchControl = "Jugador"; totalDealer += cartasDealer; Console.WriteLine($"\nEl dealer inicia con: {totalDealer} y con una carta tapada. Es hora de tu juego: \n"); while (finJuego == "No") { switch (switchControl) { case "Dealer": while (totalDealer <= 15) { cartasDealer = aleatorioDealer.Next(1, 11); totalDealer += cartasDealer; Console.WriteLine($"La nueva carta para el dealer es: {cartasDealer}. El acumulado es: {totalDealer}"); if (totalDealer > 21) { message = "El dealer ha perdido!!!"; gananciasJugador += 1; ultimaCarta = "Si"; finJuego = "Si"; } } switchControl = "cuentas"; break; case "Jugador": totalJugador += cartasJugador; Console.WriteLine($"La primera carta del jugador es: {totalJugador}\n"); while (ultimaCarta == "No") { Console.WriteLine("¿Deseas otra carta?"); otraCarta = Console.ReadLine(); if (otraCarta == "Si") { cartasJugador = aleatorioJugador.Next(1, 11); totalJugador += cartasJugador; Console.WriteLine($"La nueva carta para el jugador es: {cartasJugador}. El acumuladoes: {totalJugador}\n"); if (totalJugador > 21) { message = "Lo siento, perdiste porque te pasaste!!!"; gananciasJugador -= 1; finJuego = "Si"; ultimaCarta = "Si"; } } else if (otraCarta == "No") { ultimaCarta = "Si"; Console.WriteLine("\n"); } else { Console.WriteLine("Opción no válida, intenta nuevamente!!!"); } } switchControl = "Dealer"; break; case "cuentas": if (totalJugador > totalDealer) { message = "Has vencido al dealer!!!"; gananciasJugador = gananciasJugador + 1; finJuego = "Si"; } else if (totalJugador <= totalDealer) { message = "Lo siento, perdiste porque tienes menos que el dealer!!!"; gananciasJugador = gananciasJugador - 1; finJuego = "Si"; } break; default: Console.WriteLine("Opción no válida, inténtalo nuevamente"); break; } } Console.WriteLine($"\nLas cartas del dealer son: {totalDealer} y las cartas tuyas son: {totalJugador}. {message}. Las ganacias del jugador son: {gananciasJugador}"); } ```
este fue mi codido: `string options = "menu";` `bool status = true;` `while (status)` `{` ` string jugador = "";` ` string[] opciones = { "piedra", "papel", "tijera" };` ` Random random = new Random();` ` int opcionAleatoria = random.Next(opciones.Length);` ` string computadora = opciones[opcionAleatoria];` ` string tryAgain = "";` ` switch (options)` ` {` ` case "menu":` ` Console.WriteLine("Bienvenidos al juego de piedra, papel o tijera");` ` Console.WriteLine("escribe 'start' para comenzar");` ` Console.WriteLine("escribe 'quit' para salir");` ` options = Console.ReadLine();` ` break;` ` case "start":` ` Console.WriteLine("selecciona 'piedra', 'papel' o 'tijera'");` ` jugador = Console.ReadLine();` ` Console.WriteLine("la opción de la computadora fue: " + computadora);` ` if (jugador == "piedra" && computadora == "tijera")` ` {` ` Console.WriteLine("Ganaste! piedra vence a papel");` ` }` ` else if (jugador == "papel" && computadora == "piedra")` ` {` ` Console.WriteLine("Ganaste! papel vence a piedra");` ` }` ` else if (jugador == "tijera" && computadora == "papel")` ` {` ` Console.WriteLine("Ganaste! tijera vence a papel");` ` }` ` else if (jugador == "piedra" && computadora == "papel")` ` {` ` Console.WriteLine("Perdiste! papel vence a piedra");` ` }` ` else if (jugador == "papel" && computadora == "tijera")` ` {` ` Console.WriteLine("Perdiste! tijera vence a papel");` ` }` ` else if (jugador == "tijera" && computadora == "piedra")` ` {` ` Console.WriteLine("Perdiste! piedra vence a tijera");` ` }` ` else` ` {` ` Console.WriteLine("Empate! vuelve a intentarlo");` ` }` ` Console.WriteLine("¿quieres intentarlo una vez más? escriba 'si'");` ` tryAgain = Console.ReadLine();` ` if (tryAgain == "si")` ` {` ` options = "start";` ` }` ` else` ` {` ` options = "menu";` ` }` ` break;` ` case "quit":` ` Console.WriteLine("bye bye, amigo!");` ` status = false;` ` break;` ` default:` ` Console.WriteLine("escribe una de las opciones");` ` options = "menu";` ` break;` ` }` `}` ```js string options = "menu"; bool status = true; while (status) { string jugador = ""; string[] opciones = { "piedra", "papel", "tijera" }; Random random = new Random(); int opcionAleatoria = random.Next(opciones.Length); string computadora = opciones[opcionAleatoria]; string tryAgain = ""; switch (options) { case "menu": Console.WriteLine("Bienvenidos al juego de piedra, papel o tijera"); Console.WriteLine("escribe 'start' para comenzar"); Console.WriteLine("escribe 'quit' para salir"); options = Console.ReadLine(); break; case "start": Console.WriteLine("selecciona 'piedra', 'papel' o 'tijera'"); jugador = Console.ReadLine(); Console.WriteLine("la opción de la computadora fue: " + computadora); if (jugador == "piedra" && computadora == "tijera") { Console.WriteLine("Ganaste! piedra vence a papel"); } else if (jugador == "papel" && computadora == "piedra") { Console.WriteLine("Ganaste! papel vence a piedra"); } else if (jugador == "tijera" && computadora == "papel") { Console.WriteLine("Ganaste! tijera vence a papel"); } else if (jugador == "piedra" && computadora == "papel") { Console.WriteLine("Perdiste! papel vence a piedra"); } else if (jugador == "papel" && computadora == "tijera") { Console.WriteLine("Perdiste! tijera vence a papel"); } else if (jugador == "tijera" && computadora == "piedra") { Console.WriteLine("Perdiste! piedra vence a tijera"); } else { Console.WriteLine("Empate! vuelve a intentarlo"); } Console.WriteLine("¿quieres intentarlo una vez más? escriba 'si'"); tryAgain = Console.ReadLine(); if (tryAgain == "si") { options = "start"; } else { options = "menu"; } break; case "quit": Console.WriteLine("bye bye, amigo!"); status = false; break; default: Console.WriteLine("escribe una de las opciones"); options = "menu"; break; } } ```
Hablando con el pato de peluche... ![](https://ih1.redbubble.net/image.4610131676.2128/st,small,507x507-pad,600x600,f8f8f8.u2.jpg)

Encontré el error y lo solucione de una manera

deberias identar mientras programas, es facil con costumbre
imprimir los contadores dentro de los ciclos es una forma rapida de saber si se ejecuta correctamente.

De hecho lo de contarle que hace el código a un patito de hule es un método de dubug bastante conocido.

error: cada vez q entra al menú se cuenta como un juego más
Como consejo, para poder tabular de manera fácil y rápida puedes usar la combinación: Alt+Shift+F
`namespace helloWorld` `{` ` class Program` ` {` ` const int LIMIT = 21;` ` static void Main(string[] args)` ` {` ` Console.WriteLine($"Bienvenido al Juego de {LIMIT} cuantas fichas desea?");` ` System.Random random = new System.Random();` ` var token = Convert.ToInt32(Console.ReadLine());` ` for(int i=0; i< token; i++)` ` {` ` int cards = getCards(random);` ` int dealerCards = random.Next(1,21);` ` string message = "";` ` if(cards > dealerCards && cards<= 21)` ` {` ` message= $"Le has gando a la casa con {cards} contra {dealerCards}";` ` }` ` if(cards> 21)` ` {` ` message= $"Has perdido porque tienes mas de 21 cartas, tienes {cards}";` ` }` ` if(dealerCards > cards)` ` {` ` message= $"La casa ganó porque tiene {dealerCards} y tu {cards}";` ` }` ` if (cards == dealerCards)` ` {` ` message = "Es un empate";` ` }` ` Console.WriteLine(message);` ` if (i < token)` ` {` ` Console.WriteLine("Empezando el juego nuevamente");` ` }` ` ` ` }` ` }` ` static int getCards(Random random)` ` {` ` int cards = 0;` ` ` ` string option = "si";` ` while (cards<=21)` ` {` ` Console.WriteLine($"Desea sacar una carta? Tienes {cards} cartas");` ` option = Console.ReadLine().ToLower();` ` if(option == "no")` ` {` ` break;` ` }` ` cards += random.Next(1, 12);` ` }` ` return cards;` ` }` ` }` `}`
```c# for (int i = 0; i < creditos; i++) { switch (switchControl) { case "menu": Console.WriteLine("escriba 21 para jugar 21"); switchControl = Console.ReadLine(); i--; break; ```for (int i = 0; i < creditos; i++) { switch (switchControl) { case "menu": Console.WriteLine("escriba 21 para jugar 21"); switchControl = Console.ReadLine(); i--; break;
done !!!!
Hola, lo resolví, me parece muy interesante el análisis que se hace para resolver este error

Una pista de como resolver el problema es fijandose en el switch case y modificando el for

encontre en el “<”

Hola!, yo lo hice así.

int.TryParse(Console.ReadLine(), out coins);

Encontré el error.

Listo, ¡lo logré!

Investigue en Chat GPT y esto fue lo que me arrojo:

Para convertir la entrada leída por Console.ReadLine() a un tipo de dato int en C#, puedes utilizar el método int.Parse() o int.TryParse(). Aquí tienes un ejemplo de cómo hacerlo:

using System;

class Program
{
    static void Main()
    {
        Console.WriteLine("Ingrese un número entero:");
        string input = Console.ReadLine();

        int number;

        // Método 1: Utilizando int.Parse()
        try
        {
            number = int.Parse(input);
            Console.WriteLine("El número ingresado es: " + number);
        }
        catch (FormatException)
        {
            Console.WriteLine("El valor ingresado no es un número entero válido.");
        }

        // Método 2: Utilizando int.TryParse()
        if (int.TryParse(input, out number))
        {
            Console.WriteLine("El número ingresado es: " + number);
        }
        else
        {
            Console.WriteLine("El valor ingresado no es un número entero válido.");
        }
    }
}

lo que no agarro muy bien es como utilizar bien la keyborring,como ajustar bien el trabajo.

Hola, sí logré resolverlo!

Buenas, para identar todo el documento en VS pueden hacer

ctrl + k , ctrl + d

creo que encontré el error.

Logre descubrir que era, basicamente algo dentro de las condicionales interrumpia el for al ganar o perder

Pues… encontré el lugar del código que causa el error

fue algo negativo al i

Si

El ciclo recorre las n veces, y tenemos un do while, que siempre sera verdadero, pero aqui tendriamos que validar que sea verdadero siempre y cuando nuestro ciclo acabe esto sin importar si hayamos ganado o perdido,
saluldos

encontré el error solo falta que lo solucione xd

Lo logré. Resuleto el error de la diferencia de los platziCoins y otro que tenia de evaluar a tiempo si me pase de 21.