Este sitio web usa cookies de terceros para analizar el tráfico y personalizar los anuncios. Si no está de acuerdo, abandone el sitio y no siga navegando por él. ×


2.2.2. do ... while

Este es el otro formato que puede tener la orden "while": la condición se comprueba al final (equivale a "repetir…mientras"). El punto en que comienza a repetirse se indica con la orden "do", así:

   do 
     sentencia;
   while (condición);

Al igual que en el caso anterior, si queremos que se repitan varias órdenes (es lo habitual), deberemos encerrarlas entre llaves.

Como ejemplo, vamos a ver cómo sería el típico programa que nos pide una clave de acceso y no nos deja entrar hasta que tecleemos la clave correcta:

// Ejemplo_02_02_02a.cs
// La orden "do..while" (repetir..mientras)
// Introducción a C#, por Nacho Cabanes

using System;

public class Ejemplo_02_02_02a
{
    public static void Main()
    {
        int valida = 711;
        int clave;

        do
        {
            Console.Write("Introduzca su clave numérica: ");
            clave = Convert.ToInt32(Console.ReadLine());

            if (clave != valida) 
            Console.WriteLine("No válida!");
        }
        while (clave != valida);

        Console.WriteLine("Aceptada.");
    }
}

En este caso, se comprueba la condición al final, de modo que se nos preguntará la clave al menos una vez. Mientras que la respuesta que demos no sea la correcta, se nos vuelve a preguntar. Finalmente, cuando tecleamos la clave correcta, el ordenador escribe "Aceptada" y termina el programa.

Como veremos con detalle un poco más adelante, si preferimos que la clave sea un texto en vez de un número, los cambios al programa son mínimos, basta con usar "string" e indicar su valor entre comillas dobles:

// Ejemplo_02_02_02b.cs
// La orden "do..while" (2)
// Introducción a C#, por Nacho Cabanes

using System;

public class Ejemplo_02_02_02b
{
    public static void Main()
    {
        string valida = "secreto";
        string clave;

        do
        {
            Console.Write("Introduzca su clave: ");
            clave = Console.ReadLine();

            if (clave != valida) 
                Console.WriteLine("No válida!");
        }
        while (clave != valida);

        Console.WriteLine("Aceptada.");
    }
}

Ejercicios propuestos:

Ejercicio propuesto 2.2.2.1: Crear un programa que pida números positivos al usuario, y vaya calculando y mostrando la suma de todos ellos (terminará cuando se teclea un número negativo o cero).
Ejercicio propuesto 2.2.2.2: Crea un programa que escriba en pantalla los números del 1 al 10, usando "do..while".
Ejercicio propuesto 2.2.2.3: Crea un programa que escriba en pantalla los números pares del 26 al 10 (descen-diendo), usando "do..while".
Ejercicio propuesto 2.2.2.4: Crea un programa que pida al usuario su identificador y su contraseña (ambos numéricos), y no le permita seguir hasta que introduzca como identificador "1234" y como contraseña "1111".
Ejercicio propuesto 2.2.2.5: Crea un programa que pida al usuario su identificador y su contraseña, y no le permita seguir hasta que introduzca como nombre "Pedro" y como contraseña "Peter".