A煤n no tienes acceso a esta clase

Crea una cuenta y contin煤a viendo este curso

Ciclo while

22/26
Recursos

Aportes 30

Preguntas 0

Ordenar por:

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

for, while, do-while

Grosso modo
for
Se utilizar谩 cuando se conozca la cantidad de veces
que se va a repetir nuestro bloque de c贸digo.

while
Es conveniente utilizarlo cuando
la cantidad de veces a repetir el ciclo
dependa de un factor dif铆cil de controlar
o que llegar谩 en un momento inesperado.

do-while
Lo emplearemos para asegurar que
nuestro ciclo se ejecute al menos una vez
y que adem谩s las condiciones del problema
sean similares a las de los problemas en las que
se emplea while

Hasta el michu aprende con Platzi馃挌馃挌

  • FOR
    Un ciclo FOR y un ciclo DO_WHILE pueden funcionar de manera similar, dependiendo que es lo que debe realizar y la manera de usar los ciclos.
    Utilizando el programa del ejercicio pasado de la calculadora, que funciona por medio de if y else if, coloque la consulta al usuario del n煤mero de veces que desea realizar una operaci贸n matem谩tica y en base a su respuesta, coloque un for que nos ayuda a realizar y repetir las operaciones deseadas por el usuario.
static void Main(string[] args)
        {
            Console.WriteLine("Bienvenido a la calculadora en consola");

            //Indicar el n煤mero de veces que desea realizar una operaci贸n matem谩tica
            Console.WriteLine("驴Cuantas operaciones matem谩ticas desea realizar?");
            int numOp = int.Parse(Console.ReadLine());
            
            //Mientras la variable del "contador" sea menor o igual al n煤mero de veces que el usuario desea realizar operaciones "numOp", el ciclo for permitira realizar las operaciones.
            for (int contador = 1; contador <= numOp; contador++)
            {
                Console.WriteLine("------------------------");
                Console.WriteLine("OPERACI脫N #{0}", contador);
                Console.WriteLine("\nPrimero elige, 驴Qu茅 tipo de operaci贸n quiere realizar?");
                Console.WriteLine("Estas son las opciones:");
                Console.WriteLine(" + (Suma) \n - (Resta) \n * (Multiplicaci贸n) \n / (Divisi贸n) \n % (Residuo) \n");
                Console.Write("Teclea el simbolo de la operaci贸n que quieres realizar: ");
                char opcion = char.Parse(Console.ReadLine());

                if (opcion == '+' || opcion == '-' || opcion == '*' || opcion == '/' || opcion == '%')
                {
                    Console.WriteLine($"({opcion}) Opci贸n valida");
                    //return;
                }

                else
                {
                    Console.Write("Opci贸n no valida");
                    return;
                }

                Console.Write("\nTeclee el primer valor (entero o decimal): ");
                double valor1 = double.Parse(Console.ReadLine());

                Console.Write("Teclee el segundo valor (entero o decimal): ");
                double valor2 = double.Parse(Console.ReadLine());

                double resultado = 0;

                if (opcion == '+')
                {
                    resultado = valor1 + valor2;
                }

                else if (opcion == '-')
                {
                    resultado = valor1 - valor2;
                }

                else if (opcion == '*')
                {
                    resultado = valor1 * valor2;
                }

                else if (opcion == '/')
                {
                    resultado = valor1 / valor2;
                }

                else if (opcion == '%')
                {
                    resultado = valor1 % valor2;
                }

                Console.WriteLine($"\nLa operaci贸n y resultado serian: \n {valor1} {opcion} {valor2} = {resultado} \n");
            }

            //Se indicara el n煤mero de operaciones realizadas y se terminara el programa.
            Console.WriteLine("Se realizaron las {0} operaciones.", numOp);
            Console.WriteLine("Fin del programa.");
        }

algo a tener en cuenta cuando programemos es siempre tener buenas practicas de programaci贸n, desde la codificaci贸n, reutilizaci贸n de c贸digo, documentaci贸n, manejo de patrones de dise帽o, manejo de errores, etc.
Les comparto un post de patrones de dise帽o que esta en diferentes lenguajes de programaci贸n entre esos C# https://refactoring.guru/es/design-patterns

  • DO_WHILE

Utilizando el programa del ejercicio pasado de la calculadora, que funciona por medio de if y else if, coloque un do_while para que el programa pueda ejecutarse una vez, al final, el programa le pregunta al usuario si desea realizar otra operaci贸n, si es as铆, volver谩 al inicio del programa para repetir el programa hasta que el usuario indique que ya no quiere realizar m谩s operaciones.

static void Main(string[] args)
        {
            Console.WriteLine("Bienvenido a la calculadora en consola");
            
            //La variable "repetir", ayudara a la condici贸n do_while para que pueda funcionar.
            char repetir;
            //La variable "contador", llevara la cuenta de cuantas operaciones realizo el usuario.
            int contador = 0;

            //se inicia el do, permitiendo que el programa se ejecute.
            do
            {
                Console.WriteLine("\nPrimero elige, 驴Qu茅 tipo de operaci贸n quiere realizar?");
                Console.WriteLine("Estas son las opciones:");
                Console.WriteLine(" + (Suma) \n - (Resta) \n * (Multiplicaci贸n) \n / (Divisi贸n) \n % (Residuo) \n");
                Console.Write("Teclea el simbolo de la operaci贸n que quieres realizar: ");
                char opcion = char.Parse(Console.ReadLine());

                if (opcion == '+' || opcion == '-' || opcion == '*' || opcion == '/' || opcion == '%')
                {
                    Console.WriteLine($"({opcion}) Opci贸n valida");
                    //return;
                }

                else
                {
                    Console.Write("Opci贸n no valida");
                    return;
                }

                Console.Write("\nTeclee el primer valor (entero o decimal): ");
                double valor1 = double.Parse(Console.ReadLine());

                Console.Write("Teclee el segundo valor (entero o decimal): ");
                double valor2 = double.Parse(Console.ReadLine());

                double resultado = 0;

                if (opcion == '+')
                {
                    resultado = valor1 + valor2;
                }

                else if (opcion == '-')
                {
                    resultado = valor1 - valor2;
                }

                else if (opcion == '*')
                {
                    resultado = valor1 * valor2;
                }

                else if (opcion == '/')
                {
                    resultado = valor1 / valor2;
                }

                else if (opcion == '%')
                {
                    resultado = valor1 % valor2;
                }

                //Cada vez que se haya realizado una operaci贸n, la variable "contador" aumentara un uno.
                contador++;

                Console.WriteLine($"\nLa operaci贸n y resultado serian: \n {valor1} {opcion} {valor2} = {resultado}");

                //Se le pregunta al usuario si desea realizar otra operaci贸n.
                Console.Write("\n驴Desea realizar otra operaci贸n matem谩tica? (s/n): ");
                //su respuesta se guardara en la variable repetir
                repetir = char.Parse(Console.ReadLine());

                //si la respuesta del usuario es igual a 's', el programa se repetira.
            } while (repetir == 's');

            //cuando el usuario ya no desee realizar m谩s operaciones, el programa indica el n煤mero de operaciones que se realizaron y se termina el programa.
            Console.WriteLine("\nSe realizaron {0} operaciones.", contador);
            Console.WriteLine("Fin del programa.");
        }
//POR DEFECTO
bool modoPatrulla = false;
bool modoAtaque = false;
bool modoPersecuci贸n = false;

//CICLO DO WHILE
do
{
    Console.WriteLine("No hay intrusos a la vista, 1 si ves alguno, 0 si no");

    int respuesta = int.Parse(Console.ReadLine());

    if (respuesta==1)
    {
        Console.WriteLine("隆INTRUSOS A LA VISTA! 隆PROCEDIENDO A ATACAR!");
        //CICLO FOR LIMITADO DE ATAQUE
        for (int ataque = 0; ataque <= 10; ataque++)
        {
            modoPatrulla = false;
            modoAtaque = true;
            modoPersecuci贸n = true;
            Console.WriteLine("隆DISPARO "+ataque+"!");
            System.Threading.Thread.Sleep(100);

            
        }
        while (modoPersecuci贸n = true)
        {
            //CICLO FOR INFINITO DE PERSECUCI脫N
            for (int ataque = 0; ataque <= ataque; ataque++)
            {
                Console.WriteLine("隆PERSIGUIENDO AL INTRUSO # "+ataque+"!");
                System.Threading.Thread.Sleep(100);
            }
        }
    }
    else if (respuesta==0)
    {
        Console.WriteLine("Muy bien, no hay intrusos");
        modoPatrulla = true;
        modoAtaque = false;

    }

    else
    {
        Console.WriteLine("驴Qu茅? comando inv谩lido, intenta de nuevo");
        modoPatrulla = true;
        modoAtaque = false;
    }

    
} while (modoPatrulla);
  • WHILE

Utilizando el programa del ejercicio pasado de la calculadora, que funciona por medio de if y else if, coloque la consulta al usuario del n煤mero de veces que desea realizar una operaci贸n matem谩tica y en base a su respuesta, coloque un while que nos ayuda a realizar y repetir las operaciones deseadas por el usuario.

static void Main(string[] args)
        {    
            Console.WriteLine("Bienvenido a la calculadora en consola");

            //Indicar el n煤mero de veces que desea realizar una operaci贸n matem谩tica
            Console.WriteLine("驴Cuantas operaciones matem谩ticas desea realizar?");
            int numOp = int.Parse(Console.ReadLine());

            //Contador que nos ayudara a comparar el n煤mero de operaciones que desea realizar el usuario
            int contador = 1;

            //Mientras la variable del "contador" sea menor o igual al n煤mero de veces que el usuario desea realizar operaciones "numOp", el while permitira realizar las operaciones.
            while (contador <= numOp)
            {
                Console.WriteLine("------------------------");
                Console.WriteLine("OPERACI脫N #{0}", contador);
                Console.WriteLine("\nPrimero elige, 驴Qu茅 tipo de operaci贸n quiere realizar?");
                Console.WriteLine("Estas son las opciones:");
                Console.WriteLine(" + (Suma) \n - (Resta) \n * (Multiplicaci贸n) \n / (Divisi贸n) \n % (Residuo) \n");
                Console.Write("Teclea el simbolo de la operaci贸n que quieres realizar: ");
                char opcion = char.Parse(Console.ReadLine());

                if (opcion == '+' || opcion == '-' || opcion == '*' || opcion == '/' || opcion == '%')
                {
                    Console.WriteLine($"({opcion}) Opci贸n valida");
                    //return;
                }

                else
                {
                    Console.Write("Opci贸n no valida");
                    return;
                }

                Console.Write("\nTeclee el primer valor (entero o decimal): ");
                double valor1 = double.Parse(Console.ReadLine());

                Console.Write("Teclee el segundo valor (entero o decimal): ");
                double valor2 = double.Parse(Console.ReadLine());

                double resultado = 0;

                if (opcion == '+')
                {
                    resultado = valor1 + valor2;
                }

                else if (opcion == '-')
                {
                    resultado = valor1 - valor2;
                }

                else if (opcion == '*')
                {
                    resultado = valor1 * valor2;
                }

                else if (opcion == '/')
                {
                    resultado = valor1 / valor2;
                }

                else if (opcion == '%')
                {
                    resultado = valor1 % valor2;
                }

                //Cada vez que se haya realizado una operaci贸n, la variable "contador" aumentara un uno.
                contador++;

                Console.WriteLine($"\nLa operaci贸n y resultado serian: \n {valor1} {opcion} {valor2} = {resultado} \n");        
            }

            //Se indicara el n煤mero de operaciones realizadas y se terminara el programa.
            Console.WriteLine("Se realizaron las {0} operaciones.", numOp);
            Console.WriteLine("Fin del programa.");

Para los que esten empezando tambi茅n podr铆an ver el uso de async y await, que nos sirve para trabajar asincr贸nicamente https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/concepts/async/

FOR: El bucle for ejecuta una instrucci贸n o un bloque de instrucciones repetidamente un n煤mero finito o conocido de veces, cumplido el numero de iteraciones la expresi贸n se eval煤a como false.

WHILE: La instrucci贸n while ejecuta una instrucci贸n o un bloque de instrucciones repetidamente hasta que una expresi贸n especificada se eval煤a como false. En este ciclo el cuerpo de instrucciones se ejecuta mientras una condici贸n permanezca como verdadera en el momento en que la condici贸n se convierte en falsa el ciclo termina.

DO WHILE: Su diferencia b谩sica con el ciclo while es que la condici贸n es realizada al finalizar el ciclo, es decir las instrucciones se ejecutan por lo menos una vez porque primero ejecuta las instrucciones y al final eval煤a la condici贸n; Tambi茅n se le conoce como ciclo de condici贸n de salida.

while = mientras la casa no hayan habitantes la alarma esta activada
for = cada 15 min el sistema detectara la cantidad de habitantes de la casa inteligente

do while: si se detecta una persona se encenderan las luces

Hasta ahora me ha gustado este curso de introducci贸n a C#

Con esta clase, pude resolver los ejercicios de la U.
Gracias.

El michi hace la clase mucho m谩s entretenida y amena XD

for
se utiliza cuando se sabe cuantas veces queremos que se ejecute el programa
while
se utiliza cuando no sabemos cuantas veces se debe ejecutar el programa o su ejecuci贸n depende de un factor externo
do while
se utiliza cuando queremos que el programa se ejecute al menos una vez independientemente de si la condici贸n se cumpla o no

Console.WriteLine("Hello, DBZ World!\n");
bool continueSoftwareExecution = true;

while (continueSoftwareExecution == true)
{
    Console.WriteLine("1. Do you whish to keep the software running? write 1 if yes, 0 if no.");
    int keepGoing = Convert.ToInt16(Console.ReadLine());
    if (keepGoing == 0)
    {
        continueSoftwareExecution = false;
        Console.WriteLine($"1. The value of the continueSoftwareExecution is:{continueSoftwareExecution}, your software stoped.");
    }
    else if (keepGoing == 1)    
    {
        Console.WriteLine($"1. The value of the continueSoftwareExecution is:{continueSoftwareExecution}, your software is running.");
    }
    else
    {
        Console.WriteLine($"1. The value of the continueSoftwareExecution is:{continueSoftwareExecution}, but do you choise a invalid input {keepGoing}, your software is running.");
    }
}
bool continueSoftwareExecution1;
do
{
    Console.WriteLine("2. Do you whish to keep the software running? write 1 if yes, 0 if no.");
    int keepGoing = Convert.ToInt16(Console.ReadLine());
    if (keepGoing == 0)
    {
        continueSoftwareExecution1 = false;
        Console.WriteLine($"2. The value of the continueSoftwareExecution is:{continueSoftwareExecution1}, your software stoped.");
    }
    else if (keepGoing == 1)
    {
        continueSoftwareExecution1 = true;
        Console.WriteLine($"2. The value of the continueSoftwareExecution is:{continueSoftwareExecution1}, your software is running.");
    }
    else
    {
        continueSoftwareExecution1 = true;
        Console.WriteLine($"2. The value of the continueSoftwareExecution is:{continueSoftwareExecution1}, but do you choise a invalid input {keepGoing}, your software is running.");
    }
} while (continueSoftwareExecution1 == true);

Ciclo infinito con while invertiendo una palabra
using System;
using System.Collections.Generic;
using System.Text;

namespace ConsoleApp1
{
public class CicloWhile
{
public static void MotodoWhile()
{
bool bandera=true;

        Console.WriteLine("ingrese palabra completa");

        string palabra = Console.ReadLine();


        if (palabra.Length <= 3)
        {
            bandera = false;
        }
        else
        {
            bandera = true;
        }


        while (bandera == true)
        {



            char[] invertirPalabra = palabra.ToCharArray();
            
            Array.Reverse(invertirPalabra);

            Console.WriteLine(invertirPalabra);
        }

        
    }
}

}

For: Se utiliza cuando se conoce la cantidad de iteraciones a ejecutar.

While: Se utiliza para realizar iteraciones mientras se cumpla con una condici贸n.

Do While: Ejecuta al menos una iteraciones antes de validar la condici贸n dentro de While.

//Se ejecuta mientras le ingresan Nros Positivos

namespace Whiledo
{
class Program
{
static void Main(string[] args)
{
bool continua = true; // programa q pide numeros mientras no sea negativo

        Console.WriteLine("digite un numero mayor que cero para seguir");
        do
        {

            int dato = Convert.ToInt16 ( Console.ReadLine());
            if (dato >= 0)
             {
                Console.WriteLine("digite un numero");
                continua = true;

            }
            else if (dato<=0)
            {
                Console.WriteLine("solo acepto nros > 0");
                continua = false;
            }
            else
            {
                Console.WriteLine("No ha digitado Nro volvamos a empezar");
            }

        } while (continua == true); 

    }

Hice un peque帽o programa con lo que he aprendido durante el curso

Trata sobre una c谩mara de vigilancia la cual tiene que ser controlada por alg煤n vigilante, 茅l tendr谩 que tomar las decisiones, si no est谩 en peligro la zona insertara el 1, pero si est谩 en peligro insertara el 0.

bool camera = true;

while (camera == true)
{
    Console.WriteLine("Modo alerta");

    Console.WriteLine("If no danger is detected enter ` 1 `, if any danger is detected enter ` 0 ` but if you want to exit the program enter ` 2 `");
    int vigilant = Convert.ToInt32(Console.ReadLine());

    if (vigilant == 1)
    {
        Console.WriteLine("You're still in alert mode");
        camera = true;
    }

    else if (vigilant == 0)
    {
        Console.WriteLine("danger mode! Alarm activation");
        
        while (vigilant == 0)
        {
            Console.WriteLine("Alert");
            Console.WriteLine("Alert");
            Console.WriteLine("Alert");

            Console.WriteLine("The danger continues?");

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

            if (vigilant == 1)
            {
                Console.WriteLine("The danger is over");
                vigilant = 1;
            }

            else if (vigilant == 0)
            {
                Console.WriteLine("The danger continues");
                vigilant = 0;
            }

            else
            {
                Console.WriteLine("Wrong value try again");
            }
        }

 
    }

    else if (vigilant == 2)
    {
        Console.WriteLine("You have exited the program, thank you for using our service");
        camera = false;
    }

    else
    {
        Console.WriteLine("Wrong value try again");
    }
}bool camera = true;

while (camera == true)
{
    Console.WriteLine("Modo alerta");

    Console.WriteLine("If no danger is detected enter ` 1 `, if any danger is detected enter ` 0 ` but if you want to exit the program enter ` 2 `");
    int vigilant = Convert.ToInt32(Console.ReadLine());

    if (vigilant == 1)
    {
        Console.WriteLine("You're still in alert mode");
        camera = true;
    }

    else if (vigilant == 0)
    {
        Console.WriteLine("danger mode! Alarm activation");
        
        while (vigilant == 0)
        {
            Console.WriteLine("Alert");
            Console.WriteLine("Alert");
            Console.WriteLine("Alert");

            Console.WriteLine("The danger continues?");

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

            if (vigilant == 1)
            {
                Console.WriteLine("The danger is over");
                vigilant = 1;
            }

            else if (vigilant == 0)
            {
                Console.WriteLine("The danger continues");
                vigilant = 0;
            }

            else
            {
                Console.WriteLine("Wrong value try again");
            }
        }

 
    }

    else if (vigilant == 2)
    {
        Console.WriteLine("You have exited the program, thank you for using our service");
        camera = false;
    }

    else
    {
        Console.WriteLine("Wrong value try again");
    }
}

El gato est谩 pensando: 鈥溍塻te esclavo est谩 loco, habla solo -_-鈥 pero me da igual, mientras me acaricie la cabeza y me traiga mis croquetas favoritas鈥 en fin, hoomans! XD鈥

Dir铆a que junto a los Array, el Ciclo While es de mis cositas favoritas en C#

Aqu铆 un Remake de Robocop, con conexi贸n y desconexi贸n de Modo Patrulla y varios detectores de Intrusos.

Quisiera dejar un aporte para que se tenga en cuenta. Contando con que este es un curso de Introducci贸n, en este caso de C#, a m铆 parecer y lo digo por mi propia experiencia que estoy viviendo, creo que algo tan simple como explicar lo que es la identaci贸n, habr铆a venido bien quiz谩s explicarlo en las primeras clases.
As铆 como otros apuntes s煤per 煤tiles para no sufrir tanto en la curva de aprendizaje, aunque Google sea nuestro mejor amigo y nos ayude a solucionar todo los inconvenientes que no surjan.

Lo mismo me ocurri贸 aprendiendo l铆nea de comandos en Git, muchas fueron las veces que tuve que cerrar la aplicaci贸n porque al hacer Git Log, la consola me dec铆a Oye, esto es todo lo que tengo crack麓麓 y sin saberlo ten铆a que darleQ麓麓, lo supe a mitad de curso aprox jaja
Lo digo como cr铆tica constructiva, saludos!

  • FOR - cuando ya se de antemano cuantas vueltas necesito dar. Ej: recorrer una lista

  • WHILE - Cuando quiero que una instrucci贸n se repita mientras se cumpla una condici贸n. Ej: validar un tipo de dato

  • DO WHILE - El c贸digo se ejecutar谩 al menos una vez para luego comportarse como un while com煤n. Ej: Para hacer un men煤 de opciones.

Logr茅 mejorar mi calculadora ahora con menos if anidados.
C贸digo mejorado:

Console.WriteLine("This program calculates the area of the following figures: triangle, rectangle, trapeze, circle.");
bool again = false;
string repeat = "\nDo you wish to calculate another area?";
bool askRepeat = false;
do
{
    askRepeat = false;
    Console.WriteLine("Type the figure from which you want to calculate its area.");
    string figure = Console.ReadLine();
    switch (figure)
    {
        case "triangle":
            Console.WriteLine("Please type the height:");
            decimal triangleHeight = Convert.ToDecimal(Console.ReadLine());
            Console.WriteLine("Now type the base's length:");
            decimal triangleBase = Convert.ToDecimal(Console.ReadLine());
            decimal triangleResult = triangleHeight * triangleBase / 2;
            if (triangleHeight != 0 && triangleBase != 0)
            {
                Console.WriteLine("The area of a triangle with a base of " + triangleBase + " and a height of " + triangleHeight + " is " + triangleResult + repeat);
            }
            else
            {
                if (triangleHeight == 0 && triangleBase != 0)
                {
                    Console.WriteLine("A triangle cannot have a height that measures 0" + repeat);
                }
                else
                {
                    if (triangleHeight != 0 && triangleBase == 0)
                    {
                        Console.WriteLine("A triangle cannot have a side that measures 0" + repeat);
                    }
                    else
                    {
                        if (triangleHeight == 0 && triangleBase == 0)
                        {
                            Console.WriteLine("A triangle cannot have a height nor a side that measures 0" + repeat);
                        }
                    }
                }
            }
            askRepeat = true;
            break;
        case "rectangle":
            Console.WriteLine("Please type the height:");
            decimal rectangleHeight = Convert.ToDecimal(Console.ReadLine());
            Console.WriteLine("Now type the base's length:");
            decimal rectangleBase = Convert.ToDecimal(Console.ReadLine());
            decimal rectangleResult = rectangleHeight * rectangleBase;
            if (rectangleHeight != 0 && rectangleBase != 0)
            {
                if (rectangleHeight == rectangleBase)
                {
                    Console.WriteLine("The area of a square with a base of " + rectangleBase + " and a height of " + rectangleHeight + " is " + rectangleResult + repeat);
                }
                else
                {
                    Console.WriteLine("The area of a rectangle with a base of " + rectangleBase + " and a height of " + rectangleHeight + " is " + rectangleResult + repeat);
                }
            }
            else
            {
                Console.WriteLine("A rectangle cannot have a side that measures 0" + repeat);
            }
            askRepeat = true;
            break;
        case "trapeze":
            Console.WriteLine("Please type the height:");
            decimal trapezeHeight = Convert.ToDecimal(Console.ReadLine());
            Console.WriteLine("Now type the smallest base's length:");
            decimal trapezeBase1 = Convert.ToDecimal(Console.ReadLine());
            Console.WriteLine("And now type the largest base's length:");
            decimal trapezeBase2 = Convert.ToDecimal(Console.ReadLine());
            decimal trapezeResult = trapezeHeight * (trapezeBase1 + trapezeBase2) / 2;
            if (trapezeHeight != 0 && trapezeBase1 != 0 && trapezeBase2 != 0)
            {
                if (trapezeBase1 > trapezeBase2)
                {
                    Console.WriteLine("You were supposed to write the smallest base's length when it was asked to type the smallest base's length, but you typed the largest one's. Anyways, the answer is " + trapezeResult + repeat);
                }
                else
                {
                    if (trapezeBase1 == trapezeBase2)
                    {
                        if (trapezeBase1 == trapezeHeight)
                        {
                            Console.WriteLine("This is a square, not a trapeze. Anyways, the answer is " + trapezeResult + repeat);
                        }
                        else
                        {
                            Console.WriteLine("This is a rectangle, not a trapeze. Anyways, the answer is " + trapezeResult + repeat);
                        }
                    }
                    else
                    {
                        Console.WriteLine("The area of a trapeze with a height of " + trapezeHeight + ", a smaller base of " + trapezeBase1 + " and a larger base of " + trapezeBase2 + " is " + trapezeResult + repeat);
                    }
                }
            }
            else
            {
                if (trapezeHeight == 0 && trapezeBase1 != 0 && trapezeBase2 != 0)
                {
                    Console.WriteLine("A trapeze cannot have a height of 0" + repeat);
                }
                else
                {
                    if (trapezeHeight != 0)
                    {
                        if (trapezeBase1 == 0 || trapezeBase2 == 0)
                        {
                            Console.WriteLine("A trapeze cannot have a base of 0" + repeat);
                        }
                    }
                    else
                    {
                        Console.WriteLine("A trapeze cannot have a height nor a base of 0" + repeat);
                    }
                }
            }
            askRepeat = true;
            break;
        case "circle":
            Console.WriteLine("Please type the radius:");
            decimal radius = Convert.ToDecimal(Console.ReadLine());
            decimal Pi = 3.14159265358979323846M;
            decimal result = radius * radius * Pi;
            if (radius != 0)
            {
                Console.WriteLine("The area of a circle with a radius of " + radius + ", considering the first 20 decimal digits of Pi, is " + result + repeat); 
            }
            else
            {
                Console.WriteLine("A circle cannot have a radius of 0" + repeat);
            }
            askRepeat = true;
            break;
        default:
            Console.WriteLine("Invalid figure, select again.");
            again = true;
            break;
    }
    while (askRepeat == true)
    {
        Console.WriteLine("Type y for yes, type n for no.");
        string answer = Console.ReadLine();
        switch (answer)
        {
            case "y":
                again = true;
                askRepeat = false;
                break;
            case "n":
                again = false;
                askRepeat = false;
                break;
            default:
                Console.WriteLine("Invalid answer.");
                break;
        }
    }
}
while (again == true);

C贸digo antiguo:

if (figure == "triangle")
{
    Console.WriteLine("Please type the height:");
    decimal height = Convert.ToDecimal(Console.ReadLine());
    Console.WriteLine("Now type the base's length:");
    decimal figureBase = Convert.ToDecimal(Console.ReadLine());
    decimal result = height * figureBase / 2;
    if (height != 0 && figureBase != 0)
    {
        Console.WriteLine("The area of a triangle with a base of " + figureBase + " and a height of " + height + " is " + result);
    }else
    {
        if (height == 0 && figureBase != 0)
        {
            Console.WriteLine("A triangle cannot have a height that measures 0");
        }else
        {
            if (height != 0 && figureBase == 0)
            {
                Console.WriteLine("A triangle cannot have a side that measures 0");
            }
            else
            {
                if (height == 0 && figureBase == 0)
                {
                    Console.WriteLine("A triangle cannot have a height nor a side that measures 0");
                }
            }
        }
    }
    
}
else
{
    if (figure == "rectangle")
    {
        Console.WriteLine("Please type the height:");
        decimal height = Convert.ToDecimal(Console.ReadLine());
        Console.WriteLine("Now type the base's length:");
        decimal figureBase = Convert.ToDecimal(Console.ReadLine());
        decimal result = height * figureBase;
        if (height != 0 && figureBase != 0)
        {
            if (height == figureBase)
            {
                Console.WriteLine("The area of a square with a base of " + figureBase + " and a height of " + height + " is " + result);
            }
            else
            {
                Console.WriteLine("The area of a rectangle with a base of " + figureBase + " and a height of " + height + " is " + result);
            }
        }
        else
        {
            Console.WriteLine("A rectangle cannot have a side that measures 0");
        }
        
    }
    else
    {
        if (figure == "trapeze")
        {
            Console.WriteLine("Please type the height:");
            decimal height = Convert.ToDecimal(Console.ReadLine());
            Console.WriteLine("Now type the smallest base's length:");
            decimal trapezeBase1 = Convert.ToDecimal(Console.ReadLine());
            Console.WriteLine("And now type the largest base's length:");
            decimal trapezeBase2 = Convert.ToDecimal(Console.ReadLine());
            decimal result = height * (trapezeBase1 + trapezeBase2) / 2;
            if (height != 0 && trapezeBase1 != 0 && trapezeBase2 != 0)
            {
                if (trapezeBase1 > trapezeBase2)
                {
                    Console.WriteLine("You were supposed to write the smallest base's length when it was asked to type the smallest base's length, but you typed the largest one's. Anyways, the answer is " + result);
                }
                else
                {
                    if (trapezeBase1 == trapezeBase2)
                    {
                        if (trapezeBase1 == height)
                        {
                            Console.WriteLine("This is a square, not a trapeze. Anyways, the answer is " + result);
                        }
                        else
                        {
                            Console.WriteLine("This is a rectangle, not a trapeze. Anyways, the answer is " + result);
                        }
                    }
                    else
                    {
                        Console.WriteLine("The area of a trapeze with a height of " + height + ", a smaller base of " + trapezeBase1 + " and a larger base of " + trapezeBase2 + " is " + result);
                    }
                }
            }
            else
            {
                if (height == 0 && trapezeBase1 != 0 && trapezeBase2 != 0)
                {
                    Console.WriteLine("A trapeze cannot have a height of 0");
                }
                else
                {
                    if (height != 0)
                    {
                        if (trapezeBase1 == 0 || trapezeBase2 == 0)
                        {
                            Console.WriteLine("A trapeze cannot have a base of 0");
                        }
                    }
                    else
                    {
                        Console.WriteLine("A trapeze cannot have a height nor a base of 0");
                    }
                }
            }
        }
        else
        {
            if (figure == "circle")
            {
                Console.WriteLine("Please type the radius:");
                decimal radius = Convert.ToDecimal(Console.ReadLine());
                decimal Pi = 3.14159265358979323846M;
                decimal result = radius * radius * Pi;
                if (radius != 0)
                {
                    Console.WriteLine("The area of a circle with a radius of " + radius + ", considering the first 20 decimal digits of Pi, is " + result);
                }
                else
                {
                    Console.WriteLine("A circle cannot have a radius of 0");
                }
            }
        }
    }
}

Este es el ejemplo de For:

public class Program
    {
        static void Main(string[] args)
        {
            int breadPrice = 5;
            int moneyIhave = 50;

            for (int i = breadPrice; i <= moneyIhave; i = i + 5)
            {
                Console.WriteLine("Bread Price:${0}", i);
            }

            //El programa se debe repetir 10 veces
        }
    }

Este es el ejemplo de While:

public class Program
    {
        static void Main(string[] args)
        {
            bool theresDanger = true;

            while (theresDanger == true)
            {
                Console.WriteLine("Do you see danger nearby?");
                Console.WriteLine("Write 0 if YES");
                Console.WriteLine("Write 1 if NOT");
                Console.WriteLine("If write another number the robot will be prepare to attack");
                int securitySoftware = Convert.ToInt32(Console.ReadLine());

                if (securitySoftware == 0)
                {
                    Console.WriteLine("The robot will attack");
                    theresDanger = false;
                }

                if (securitySoftware == 1)
                {
                    Console.WriteLine("OK, the robo will continue searching danger");
                    theresDanger = false;
                }

                if(securitySoftware > 1)
                {
                    Console.WriteLine("The robot will be prepare to attack");
                    theresDanger = false;
                }
            }
        }
    }

Yo realice la tabla del 10 con el ciclo while

< using System;

namespace Ciclo_While
{
internal class Program
{
static void Main(string[] args)
{
Console.WriteLine(鈥淚mprimamos la tabla del 10鈥);
int iter = 1;
int tabla = 10;
while (iter <11)
{
int result = tabla * iter;
Console.WriteLine(tabla+" * 鈥+ iter+鈥= "+ result);
iter++;

        }
        
    }
}

} >

Con este ejemplo entendi la diferencia entre For y While !

// Ciclo While

int limit = 100;
int contador = 0;
int potencia = 2 * contador;

while (potencia < limit)
{
Console.Write(potencia);
contador ++;
potencia = 2 * contador;
}

Para el While, siendo paranoico cuando keepGoing=1 no es necesario volver a forzar a continueSoftwareExecution a true, ya que ingresa el ciclo de esa manera.
Con Do-While es otra historia