Bucle do-while
Ejecuta repetidamente una instrucción, hasta que el valor de la expresión se hace falsa. La comprobación tiene lugar después de cada iteración.
Contenido |
[editar] Sintaxis
atrib(opcional) do instrucción while ( expresión ) ;
|
|||||||||
atrib | - | (desde C++11) cualquier número de atributos |
expresión | - | cualquier expresión que es contextualmente convertible a bool. Se evalúa esta expresión después de cada iteración, y si se obtiene el valor false, se sale del bucle. |
instrucción | - | cualquier instrucción, normalmente una instrucción compuesta, que es el cuerpo del bucle |
[editar] Explicación
Instrucción siempre se ejecuta al menos una vez, incluso si la expresión siempre tiene un valor falso. Si no debe ejecutarse en este caso, se puede usar un bucle while o for.
Si se necesita terminar la ejecución del bucle en algún punto, se puede usar una instrucción break como instrucción de terminación.
Si se necesita que la ejecución del bucle continúe al final del cuerpo del bucle, se puede usar una instrucción continue como cortocircuito.
[editar] Notas
Como parte de la garantía de progreso de avance de C++, el comportamiento no está definido si un bucle que no tiene comportamiento observable (no realiza llamadas a funciones de E/S, no accede a objetos volátiles ni realiza operaciones atómicas o de sincronización) no termina. Los compiladores pueden eliminar dichos bucles.
[editar] Palabras clave
[editar] Ejemplo
#include <iostream> #include <algorithm> #include <string> int main() { int j = 2; do { // el cuerpo del bucle es una instrucción compuesta j += 2; std::cout << j << " "; } while (j < 9); std::cout << '\n'; // situación común cuando se usa el bucle do-while std::string s = "aba"; std::sort(s.begin(), s.end()); do std::cout << s << '\n'; // instrucción de expresión es el cuerpo del bucle while(std::next_permutation(s.begin(), s.end())); }
Salida:
4 6 8 10 aab aba baa
[editar] Véase también
Documentación de C para do-while
|