Contamos con el resultado a esta dificultad, o por lo menos eso esperamos. Si continuas con interrogantes puedes escribirlo en el apartado de preguntas, que con placer te responderemos
Ejecuta un declaración repetidamente, hasta que el valor de condición se convierte false
. La prueba se realiza antes de cada iteración.
Sintaxis
atributo(Opcional)while ( condición) declaración |
atributo(C++11) | – | cualquier numero de attributes |
condición | – | cualquier expresión que sea contextualmente convertible a bool o una declaración de una sola variable con un inicializador de llaves o igual. Esta expresión se evalúa antes de cada iteración, y si da como resultado false , se sale del bucle. Si se trata de una declaración, el inicializador se evalúa antes de cada iteración, y si el valor de la variable declarada se convierte en false se sale del bucle. |
declaración | – | cualquier declaración, normalmente una declaración compuesta, que es el cuerpo del bucle |
Explicación
Si declaración es una declaración única (no una declaración compuesta), el alcance de las variables declaradas en ella se limita al ciclo while como si fuera una declaración compuesta, en otras palabras,
while(--x >=0)int i;// i goes out of scope
es lo mismo que.
while(--x >=0)int i;// i goes out of scope
Si condición es una declaración como T t = x
la variable declarada solo tiene alcance en el cuerpo del ciclo, y se destruye y se recrea en cada iteración, en otras palabras, el ciclo while es equivalente a.
label:// start of condition scope T t = x;if(t) statement goto label;// calls the destructor of t
Si es necesario terminar la ejecución del ciclo en algún momento, se puede usar la instrucción break como declaración de terminación.
Si la ejecución del ciclo debe continuar al final del cuerpo del ciclo, la instrucción continuar se puede usar como atajo.
notas
Como parte de la garantía de avance de C++, el comportamiento no está definido si un bucle que no tiene un 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 finaliza. Los compiladores pueden eliminar dichos bucles.
Palabras clave
while
.
Ejemplo
#includeintmain()// while loop with a single statementint i =0;while(i <10) i++; std::cout << i <<'n';// while loop with a compound statementint j =2;while(j <9) std::cout << j <<' '; j +=2; std::cout <<'n';// while loop with a declaration conditionchar cstr[]="Hello";int k =0;while(char c = cstr[k++]) std::cout << c; std::cout <<'n';
Producción:
102468 Hello
Ver también
valoraciones y comentarios
Si piensas que ha resultado provechoso este artículo, sería de mucha ayuda si lo compartes con más entusiastas de la programación de esta forma contrubuyes a extender este contenido.