(Conceptos básicos del algoritmo) ¿Se pueden transformar los bucles de tipo cuando y los bucles de tipo hasta?
Los bucles When y Until no se pueden convertir en algunos casos.
1. Al realizar un bucle, primero se juzga la condición y luego se ejecuta el cuerpo del bucle. Si la condición no se cumple en el primer juicio, el cuerpo del bucle se ejecuta 0 veces, por lo que el número de ejecuciones del cuerpo del bucle en el bucle es N gt = 0;
2. Hasta el bucle, el cuerpo del bucle se ejecuta primero y luego se juzga la condición. Si se cumple la condición, el bucle continúa; de lo contrario, se sale del bucle. Es decir, independientemente de si la condición se cumple o no, ejecuta el cuerpo del bucle al menos una vez, por lo que el número de ejecuciones del cuerpo del bucle en el bucle de tipo hasta es N gt = 1;
Es fácil ver a partir de esto que no ambos ciclos pueden transformarse. Un ejemplo especial es que los bucles de tipo when se pueden utilizar como juicios condicionales, pero los bucles de tipo Until no. El siguiente ejemplo (programa C, ejecutado bajo DEV-C 5) muestra "¡Hola mundo!" cuando los dos números enteros ingresados por el usuario son iguales, y se implementa mediante un bucle de tipo cuando, que no se puede lograr con un hasta. -tipo bucle.
#include lt;iostreamgt;
usando el espacio de nombres std;
int main(){
....int a, b;
....coutlt;lt;"Ingrese dos números enteros: "
....cingt;gt;agt;gt;b;
....mientras(a==b){
.....coutlt;lt;"¡Hola mundo!"lt;lt;endl; ....break; //Salir del bucle
....}
....system("PAUSE");
.. ..return 0;
}
El "." se agrega para mantener la sangría y hacer que el programa sea legible.