Vous êtes sur la page 1sur 4

Secuencia de Ejecucin de la Sentencia for

Para complementar el estudio de la sentencia for, se mostrar el procedimiento de ejecucin de las siguientes sentencias: int p=1; int indice; for(indice=100; indice<=1000; indice = indice*p) p = p + indice/100; El orden de ejecucin de las sentencias sera el siguiente: 1) La variable p es declarada e inicializada con el valor de 1 p=1 2) La variable indice es declarada 3) Ejecucin del ciclo, la variable indice es la variable de control del ciclo: a) La variable indice se inicializa con el valor de 100 indice = 100 b) Se analiza la expresin booleana indice<=1000? Como esto es verdadero, las sentencias del ciclo se ejecutan. p = p + indice/100 = 1 + 100/100 = 2 c) Luego de la ejecucin de las sentencias, la variable de control del ciclo, indice, se actualiza: indice = indice*p = 100 * 2 = 200 d) Se analiza nuevamente la expresin booleana indice<=1000? Como es verdadera, las sentencias del ciclo se ejecutan. p = p + indice/100 = 2 + 200/100 = 4 e) Luego de la ejecucin de las sentencias, la variable de control del ciclo se actualiza: indice = indice*p = 200 * 4 = 800 f) Se analiza la expresin booleana indice<=1000? y otra vez las sentencias del ciclo se ejecutan. p = p + indice/100 = 4 + 800/100 = 12 g) La variable de control del ciclo se actualiza: indice = indice*p = 800 * 12 = 9600

h) Se analiza nuevamente la expresin booleana indice<=1000? Esta vez, sin embargo, la expresin booleana es falsa y con ello termina la ejecucin del ciclo. Se puede observar que, en resumen, cuando se ejecuta una sentencia for se realizan los siguientes pasos: 1) Se inicializa la variable de control 2) Se analiza la expresin booleana y, si es verdadera, se ejecutan las sentencias del ciclo 3) Se actualiza la variable de control 4) Se repiten los pasos 2 y 3 hasta que la expresin booleana sea falsa.

Sentencia break
En algunas ocasiones es necesario terminar un ciclo antes de que ste termine de forma natural. Por ejemplo, suponga que un ciclo debe solicitar 10 nmeros positivos y calcular la suma de cada uno de ellos. Si en alguno de los casos el usuario se equivoca y proporciona un nmero negativo, una de las opciones sera simplemente enviar un mensaje de error y terminar el ciclo, como en el siguiente ejemplo: int suma, n, numero; suma = 0; for(n=1;n<=10;n++) { cout<<Dame un numero positivo \n; cin>>numero; if (numero<=0) { cout<<Error. El numero debe ser positivo \n; break; } suma = suma + numero; } Observe que, en forma natural, el ciclo pedira 10 valores. Sin embargo, si el usuario proporcionara un nmero negativo en la iteracin 5, por ejemplo, el ciclo terminara ah. Es importante mencionar que la sentencia break puede utilizarse para terminar cualquier sentencia iterativa (ciclo), no nicamente para terminar la sentencia for. En otras palabras, break tambin puede utilizarse dentro de una sentencia while o dowhile. El uso de la sentencia break, sin embargo, no implica necesariamente que el programa termina, implica simplemente que la ejecucin del ciclo terminara y se continuara ejecutando las sentencias del programa colocadas despus del ciclo.

Observe tambin que la sintaxis de la sentencia es simplemente la palabra clave break seguida de punto y coma. break;

Sentencias for Anidadas


El cuerpo de un ciclo (lo que se encierra entre llaves) puede contener cualquier tipo de sentencia, de forma que es posible escribir un ciclo iterativo dentro de otro. Cuando esto ocurre, se dice que se tienen sentencias anidadas. El mismo trmino se utiliza cuando dentro de alguno de los casos de una sentencia condicional (if) se encuentra otra sentencia condicional. El siguiente es un ejemplo de ciclos anidados: int n,m; for(n=1; n<=3;n++) for(m=3;m>=1;m--) cout<< n << x <<m << = <<n*m <<\n; Como ejercicio, determine que se muestra en pantalla con la ejecucin de dichas sentencias.

Haga lo mismo para las siguientes sentencias: a) double muestra1, double muestra2, suma=0.0; for(muestra1=2.0; muestra1>0;muestra1 = muestra1 0.5) { for(muestra2=1.0;muestra2<8.0;muestra2 = muestra2 * 2.0) { suma = suma + muestra1 + muestra2; cout<< suma <<\n; } } b) int n=5; while(n>0) { if(n==2) break;

cout<< n << \n; n--;

Vous aimerez peut-être aussi