Está en la página 1de 12

8/8/2019 Bucle While – do en C++

(https://ehack.info/)

INICIO (HTTPS://EHACK.INFO/) ASPEL (HTTPS://EHACK.INFO/ASPEL/)

CEH  (HTTPS://EHACK.INFO/CEH/)

CEH – CAPÍTULO 01 (HTTPS://EHACK.INFO/CEH-CAPITULO-01/) CEH – CAPÍTULO 02 (HTTPS://EHACK.INFO/CEH-CAPITULO-02/)

CISSP (HTTPS://EHACK.INFO/CISSP/)

HARDWARE  (HTTPS://EHACK.INFO/HARDWARE/)

POST: POWER ON SELF TEST (HTTPS://EHACK.INFO/POST-POWER-ON-SELF-TEST/)

TABLAS DE CÓDIGO POST EN ESPAÑOL: AMI BIOS (HTTPS://EHACK.INFO/TABLAS-DE-CODIGO-POST-EN-ESPANOL-AMI-BIOS/)

PROGRAMACIÓN  (HTTPS://EHACK.INFO/PROGRAMACION/)

INTRODUCCIÓN A LA PROGRAMACIÓN – CONTENIDO (HTTPS://EHACK.INFO/INTRODUCCION-A-LA-PROGRAMACION-CONTENIDO/)

LEGUAJE C++ INTRODUCCIÓN (HTTPS://EHACK.INFO/LEGUAJE-C-INTRODUCCION/)

PROGRAMACIÓN EN PYTHON – BÁSICO (HTTPS://EHACK.INFO/PROGRAMACION-EN-PYTHON-BASICO/)


SYSINTERNALS  (HTTPS://EHACK.INFO/SYSINTERNALS/)

Este sitio web utiliza cookies para mejorar su experiencia. Asumiremos que acepta esta política siempre que esté utilizando este sitio web. Aceptar Aviso de X
Privacidad (https://ehack.info/?page_id=3)

https://ehack.info/bucle-while-do-en-c/ 1/18
8/8/2019 Bucle While – do en C++

ACCESSCHK – SYSINTERNALS (HTTPS://EHACK.INFO/ACCESSCHK/)

ACCESSENUM – SYSINTERNALS (HTTPS://EHACK.INFO/ACCESSENUM/)

ADEXPLORER – SYSINTERNALS (HTTPS://EHACK.INFO/ADEXPLORER/)

ADINSIGHT – SYSINTERNALS (HTTPS://EHACK.INFO/ADINSIGHT-SYSINTERNALS/)

ADRESTORE – SYSINTERNALS (HTTPS://EHACK.INFO/ADRESTORE/)

AUTOLOGON – SYSINTERNALS (HTTPS://EHACK.INFO/AUTOLOGON-SYSINTERNALS/)

AUTORUN – SYSINTERNALS (HTTPS://EHACK.INFO/AUTORUNS-SYSINTERNALS/)

EHACK (HTTPS://EHACK.MX) 

Home (https://ehack.info) Programación (https://ehack.info/category/programacion/) Bucle While – do en C++

Bucle While – do en C++


Posted On : 17/12/2018 (https://ehack.info/bucle-while-do-en-c/) Published By : eHack (https://ehack.info/author/adminehackinfo/)


Este sitio web utiliza cookies para mejorar su experiencia. Asumiremos que acepta esta política siempre que esté utilizando este sitio web. Aceptar Aviso de X
Privacidad (https://ehack.info/?page_id=3)

https://ehack.info/bucle-while-do-en-c/ 2/18
8/8/2019 Bucle While – do en C++

Spread the love

Compartir 13 Twittear Guardar 0


Shares
(https://web.whatsapp.com/send?
text=Bucle%20While%20%E2%80%93%20do%20en%20C%2B%2B%20https%3A%2F%2Fehack.info%2Fbucle-
Como acabamos de analizar, el bucle While, nos permite ejecutar un conjunto de sentencias mientras una condición sea verdadera. Y también se señaló que existe
while-
siempre la posibilidad de que el bucle no se ejecute, (si la condición desde un inicio es falsa). Sin embargo habrá ocasiones que necesitaremos que al menos una
do-ejemplo, el caso en que necesitemos presentar un menú de opciones, para estos casos podemos
vez se ejecute el ciclo de instrucciones. Como podría ser, por
utilizar la sentencia Do – While. en-
c%2F)

Do – While


Este sitio web utiliza cookies para mejorar su experiencia. Asumiremos que acepta esta política siempre que esté utilizando este sitio web. Aceptar Aviso de X
Privacidad (https://ehack.info/?page_id=3)

https://ehack.info/bucle-while-do-en-c/ 3/18
8/8/2019 Bucle While – do en C++

Estructura do / while en C++

El bucle do – while se puede leer como «haz – mientras», esta estructura se encarga de repetir de forma cíclica un conjunto de instrucciones que se encuentren
dentro del bucle, esta repetición se realizará hasta que se cumpla la condición de parada que de namos y que es evaluada con la palabra reservada while.

Es importante observar 2 detalles fundamentales que lo diferencían de la sentencia While

1. La condición de inicio se evalúa después de ejecutar el código del ciclo, por lo que el código siempre se ejecutará por lo menos 1 vez.
2. Dentro del código del ciclo debemos establecer un mecanismo para que el ciclo se deje de ejecutar, sino se hace, el ciclo se repetirá de forma in nita.
Esto se realiza con lo que se denomina «Condición de parada» y se establece con la palabra reservada While.


Sintaxis del ciclo do – while
Este sitio web utiliza cookies para mejorar su experiencia. Asumiremos que acepta esta política siempre que esté utilizando este sitio web. Aceptar Aviso de X
Privacidad (https://ehack.info/?page_id=3)

https://ehack.info/bucle-while-do-en-c/ 4/18
8/8/2019 Bucle While – do en C++

do
{
// Instrucciones del ciclo.
} while (condicion de parada)

en donde,

do, palabra reservada que indica el inicio del ciclo

{}, Todas las instrucciones dentro de las llaves se ejecutarán como una instrucción como parte del ciclo while, como parte del código debemos generar la
instrucción de paro de modo que podamos salir de forma limpia del ciclo.

while, palabra reservada que establece el ciclo.

(condición de parada), es una condición lógica que se evalúa por la instrucción while, en caso de ser verdadera, se ejecutarán las instrucciones dentro del ciclo
while, en caso de ser falsa, se ignora este código.

El siguiente ejemplo ilustra el uso del ciclo do – while


Este sitio web utiliza cookies para mejorar su experiencia. Asumiremos que acepta esta política siempre que esté utilizando este sitio web. Aceptar Aviso de X
Privacidad (https://ehack.info/?page_id=3)

https://ehack.info/bucle-while-do-en-c/ 5/18
8/8/2019 Bucle While – do en C++

// cpp_28_whiledo01.cpp
// Uso de while do
// Se ilustra un uso del ciclo while - do con un menú de ejemplo, el ciclo se
// ejecuta mientras el usuario no presione el número 3, además se ilustra el
// uso de una condición de parada utilizando una variable en lugar de una
//comparación.
// 2017, Por http://about.me/carlosgbr
// Versión 1
// Compilado en https://www.onlinegdb.com/online_c++_compiler

#include <iostream>

using namespace std;

int main()
{
int opcion = 0;
bool terminar = false;

cout << "Este programa realiza la conversión de temperaturas" << endl;

do // Inicio del ciclo do - while


{
cout << "Escribe el número según la conversión que deseas realizar:" << endl << endl;

cout << "1. Convertir Grados centígrados a Fahenheit:" << endl;


cout << "2. Convertir Grados Fahenheit a Centígrados:" << endl;
cout << "3. Salir del programa" << endl;

cin >> opcion;

cout << "Seleccionaste la opción:" << opcion << endl;


//Evaluamos la selección del usuario
Este sitio web
if utiliza
(opcion cookies
== 3)para{ mejorar su experiencia. Asumiremos que acepta esta política siempre que esté utilizando este sitio web. Aceptar Aviso de X
cout << "Elegiste salir, gracias Privacidad (https://ehack.info/?page_id=3)
por utilizar este programa";

https://ehack.info/bucle-while-do-en-c/ 6/18
8/8/2019 Bucle While – do en C++

terminar = true; //El ciclo debe continuar si se pulsa 3


} else {
terminar = false; //Cualquier otro número permite que siga el programa
}
} while (!terminar); //Observa que en lugar de una comparación, se utiliza
//el valor de una variable para determinar si continuamos

return 0;
}

En este punto ya debes ser capaz de leer con uidez el código, al margen de los comentarios. Puedes observar que el ciclo do-while controla la ejecución del
programa mientras se cumpla la condición para continuar.

De hecho esta es la parte relevante en este ejemplo. Observa que se ha de nido la variable terminar para establecer la condición de parada. Este tipo de variables
también se le puede denominar «bandera», lo que en en términos informáticos puede de nirse como un valor que establece una condición o estado determinado
dentro de un programa.


Este sitio web utiliza cookies para mejorar su experiencia. Asumiremos que acepta esta política siempre que esté utilizando este sitio web. Aceptar Aviso de X
Privacidad (https://ehack.info/?page_id=3)

https://ehack.info/bucle-while-do-en-c/ 7/18
8/8/2019 Bucle While – do en C++

Salida Do – While: Ejemplo

Como ya se ha indicado, el ciclo se ejecutará siempre y cuando la condición de parada sea verdadera. De acuerdo a nuestro programa tenemos una situación que
puede resultar un tanto extraña, tenemos la condición terminar, la cual en caso de ser verdadera, lo lógico es esperar que el programa termine, y en caso de que
terminar sea falso, el programa continúe, ¿Suena lógico, no es así? Por ello es que se inicializa la variable a Falso, para asegurarnos que que el programa continúe


mientras el usuario no pulse el número 3. Si pulsa el 3, la variable se asigna a falso, lo que dentro de nuestra lógica es la instrucción de terminar, sin embargo
¿Cómo lo evalúa while?
Este sitio web utiliza cookies para mejorar su experiencia. Asumiremos que acepta esta política siempre que esté utilizando este sitio web. Aceptar Aviso de X
Analiza: Privacidad (https://ehack.info/?page_id=3)

https://ehack.info/bucle-while-do-en-c/ 8/18
8/8/2019 Bucle While – do en C++

terminar = false; //es decir el programa debe seguir ejecutándose.


while (terminar);

¿Qué ocurre? Que el ciclo terminaría en este punto. Lo cual es incorrecto. La razón radica en lo que se mencionó de while, este ciclo seguirá mientras la condición
sea verdadera. En nuestro caso la interpretación es contraria, debe continuar mientras terminar sea falso. ¿Cómo solucionamos esta situación?

Podríamos optar por hacer que:

terminar = false;

cuando el usuario presiona 3, y hacer que sea verdadero en cualquier otro caso. lo cual aunque funcional mete un poco de «ruido» pues la evaluación de terminar
se leería:

terminar = false;
while (terminar); //mientras terminar sea falso, termina el ciclo pues solo se ejecuta en condición verdadera.

Aunque funciona, no deja de ser un poco extraño.

De la forma en que está programado tenemos:

terminar = true; //si lo pasamos directo a While, wshile seguirá funcionando, en lugar de terminar, que es lo que queremos
} while (!terminar); //(!terminar) = falso (recuerda que ! es la negación del valor al que está asociado) de este modo termina


Te sugiero que pruebes hacer una o dos variaciones adicionales al programa para que visualices a fondo lo que acabo de mencionar, de modo que puedas
programar el mismo resultado una de estas variaciones sugiero la hagas sin el símbolo de negación en la condición while (!). Eso es lo bueno que tiene la
programación, siempre puedes hacer lo mismo de diverso y mejor (o peor) modo, lo importante es que tú eres el responsable de que funcione (o no) tu código,
Este sitio web utiliza cookies para mejorar su experiencia. Asumiremos que acepta esta política siempre que esté utilizando este sitio web. Aceptar Aviso de X
nadie más.
Privacidad (https://ehack.info/?page_id=3)

https://ehack.info/bucle-while-do-en-c/ 9/18
8/8/2019 Bucle While – do en C++

do while, contadores y conversión de tipos


El siguiente es un programa que te permite sumar números hasta que el usuario escribe x utilizando un bucle while do, la estructura funciona como ya se ha
mencionado, en este punto lo importante es que empieces a notar otros detalles que se presentan en el programa.

Es buena idea que realices todas las variaciones que consideres necesarias para identi car que hace cada línea de código, también es buena idea que comentes
líneas de código para que analices el resultado.

Finalmente realizamos un programa muy compacto para mostrar una tabla de caracteres ASCII y su correspondiente código. Puedes apreciar el tamaño del código,
que aunque pequeño, nos ofrece un resultado interesante. Con lo que puedes apreciar que no se requieren extensos programas para llegar a resultados útiles.


Este sitio web utiliza cookies para mejorar su experiencia. Asumiremos que acepta esta política siempre que esté utilizando este sitio web. Aceptar Aviso de X
Privacidad (https://ehack.info/?page_id=3)

https://ehack.info/bucle-while-do-en-c/ 10/18
8/8/2019 Bucle While – do en C++

// eb29_whiledo02.cpp
// Uso de while do 2
// Se ilustra un uso del ciclo while - do Mostramos los códigos ASCII aprovechando
// la posibilidad de realizar conversiones implícitas de tipos
// 2017, Por http://about.me/carlosgbr
// Versión 1
// Compilado en https://www.onlinegdb.com/online_c++_compiler

#include <iostream>

using namespace std;

int main()
{
int a = 0;

cout<<"Tabla de códigos ASCII utilizando do While" << endl << endl;

cout << "Código \t Caracter" << endl;


do {

// char(a) convierte el valor numérico de "a" a su correspondencia ASCII


cout << a << " \t - " << char(a) << endl;

a = a + 1; //incrementamos nuestro contador

} while (a<=255);

return 0;
}


En este programa lo más interesante es el cambio de tipo de una variable a otra distinta (inicialmente la declaramos como entera y posteriormente la usamos
Este sitio web utiliza cookies para mejorar su experiencia. Asumiremos que acepta esta política siempre que esté utilizando este sitio web. Aceptar Aviso de X
como carácter) rede niendo su tipo dentro de una sentencia char(a). Y el segundo punto remarcable es la de nición de un contador, para llegar un registro de los
Privacidad (https://ehack.info/?page_id=3)
ciclos, en la siguiente sección hablaré más en detalle de este tipo de contadores. Por el momento intenta comprender el funcionamiento del mismo.
https://ehack.info/bucle-while-do-en-c/ 11/18
8/8/2019 Bucle While – do en C++

A modo de ejercicio resulta conveniente que tomes los programas de esta sección y los reescribas para que trabajen utilizando el ciclo while. Como ya mencioné
recuerda que siempre hay una forma distinta de hacer lo mismo.

Ethical hack

Fuente Imágenes:
«Todas las demás imágenes de esta sección»: by Nala Systems (http://www.nalasys.mx)

Código fuente:
cpp_28_whiledo01.cpp (https://github.com/carlosgbr/cpp_introduccion/blob/master/cpp_28_whiledo01.cpp)
cpp_29_whiledo02.cpp (https://github.com/carlosgbr/cpp_introduccion/edit/master/eb29_whiledo02.cpp)

(https://creativecommons.org/licenses/by-nc-sa/4.0/)
Bucle While - do en C++ by Roberto C. González (https://about.me/carlosgbr) is licensed under a Creative Commons Reconocimient


Este sitio web utiliza cookies para mejorar su experiencia. Asumiremos que acepta esta política siempre que esté utilizando este sitio web. Aceptar Aviso de X
Privacidad (https://ehack.info/?page_id=3)

https://ehack.info/bucle-while-do-en-c/ 12/18

También podría gustarte