Estructuras repetitivas: do-while

La instrucción do-while permite ejecutar un bloque de instrucciones al menos una vez, y seguir repitiéndolo mientras se cumpla una condición lógica. La sintaxis es:

do {
    // Bloque de instrucciones
} while (condición lógica);
  • Se ejecuta primero el bloque de instrucciones.
  • Después, se evalúa la condición lógica.
  • Si la condición es verdadera (true), se vuelve a ejecutar el bloque.
  • Este proceso se repite hasta que la condición sea falsa (false).
  • Este tipo de estructura es útil cuando necesitamos que el bloque de instrucciones se ejecute al menos una vez, independientemente de la condición inicial.
  • Para evitar ciclos infinitos, el bloque de instrucciones debe modificar alguna de las variables que intervienen en la condición, de modo que eventualmente la condición pueda ser falsa y se finalice el bucle.

Veamos un ejemplo de un programa similar al del apartado anterior que solicita al usuario una contraseña.

#include <iostream>
#include <string>

int main() {
    std::string secreto = "asdasd";
    std::string clave;

    do {
        std::cout << "Dime la clave: ";
        std::getline(std::cin, clave);

        if (clave != secreto) {
            std::cout << "Clave incorrecta." << std::endl;
        }
    } while (clave != secreto);

    std::cout << "Bienvenido." << std::endl;

    return 0;
}