do
-
while
loop
Ejecuta condicionalmente una sentencia repetidamente (al menos una vez).
Contenidos |
Sintaxis
attr
(opcional)
do
sentencia
while (
expresión
);
|
|||||||||
| attr | - | (since C++11) cualquier número de atributos |
| expression | - | una expresión |
| statement | - | una sentencia (normalmente una sentencia compuesta) |
Explicación
Cuando el control alcanza una sentencia do , su statement se ejecutará incondicionalmente.
Cada vez que statement finaliza su ejecución, expression será evaluada y convertida contextualmente a bool . Si el resultado es true , statement será ejecutado nuevamente.
Si el bucle necesita ser terminado dentro de statement , una break statement puede ser usada como sentencia de terminación.
Si la iteración actual necesita ser terminada dentro de statement , se puede usar una continue statement como atajo.
Notas
Como parte de la garantía de progreso de C++, el comportamiento es indefinido si un bucle que no es un bucle infinito trivial (desde C++26) sin comportamiento observable no termina. Los compiladores tienen permitido eliminar dichos bucles.
Palabras clave
Ejemplo
#include <algorithm> #include <iostream> #include <string> int main() { int j = 2; do // la sentencia compuesta es el cuerpo del bucle { j += 2; std::cout << j << ' '; } while (j < 9); std::cout << '\n'; // situación común donde se utiliza el bucle do-while std::string s = "aba"; std::sort(s.begin(), s.end()); do std::cout << s << '\n'; // la sentencia de expresión es el cuerpo del bucle while (std::next_permutation(s.begin(), s.end())); }
Salida:
4 6 8 10 aab aba baa
Véase también
|
Documentación de C
para
do-while
|