Está en la página 1de 4

CONTROL DEL FLUJO DE PROGRAMAS

Bloques

Los bloques son un conjunto de instrucciones sintácticamente equivalentes a una


instrucción sencilla. Toda instrucción que tenga influencia sobre otra lo hará en la
misma forma si la instrucción influenciada fuese un bloque.
Los bloques se definen mediante un juego de llaves ({ y }).

Instrucción if... else (estructuras de decisión)

if (expresión) sentencia;
if (expresión) sentencia 1; else sentencia 2;
Donde "expresión" es cualquier expresión aritmética o lógica.
Si la expresión da un valor diferente de cero (verdadero) se ejecuta la sentencia
inmediata a ésta, de lo contrario, si es cero (falso) se ejecuta, si existe, la sentencia
que sigue a la cláusula else.
Ejemplo:
if (a>b) printf ("a es mayor\n");
if (a>b)
{ printf ("a es mayor\n");
_________
_________
_________
}
También se puede: if (a - b)…
Con else:
if (a>b && c!=0) // Podría ser también (a>b && c)
printf("Resultado 1\n");
else
printf("Resultado 2\n");

Instrucción while (ciclo iterativo con entrada controlada)

while (expresión) sentencia;


while (expresión) {
sentencia 1;
sentencia 2;

}
Ejemplo:
while (a>b) { //repetir mientras a sea mayor que b

}

while (c) { //repetir mientras c sea diferente de cero



}
1/4
Curso: Técnicas de programación [INF144] J. Miguel Guanira E.
Instrucción do (ciclo iterativo con salida controlada)

do {
sentencia 1;
sentencia 2;

} while (expresión);
Ejemplo:
do {

} while (a<10 || a>50);

Instrucción for (ciclo iterativo con contador explícito)

for (expr1 ; expr2 ; expr3) {


sentencia 1;
sentencia 2;

}
Ejemplo:
for (i = 0; i < n; i++) {
…;
}
Esta instrucción es equivalente a:
i = 0;
while (i<n) {

i++;
}
Por eso podemos usarla de muchas formas como:
for (d=5.7; d<10.85; d += 0.5)…
expr1 y expr3 pueden ser varias instrucciones separadas por comas, por ejemplo:
for (i = 0, d=5.7; i <n && d<10.85; i++, d += 0.5) …

Instrucción break
La instrucción break se utiliza sólo en bloques de instrucciones como while, for, do y
switch (que se verá más adelante). Esta instrucción da por terminada las iteraciones o
el bloque.
Ejemplo:
#include <stdio.h>
#define MAXDAT 50
int main () {
int numDat=0, suma = 0, dato;
double promedio;
while (numDat<MAXDAT){
scanf("%d", &dato);
if (dato == -1) break;
2/4
Curso: Técnicas de programación [INF144] J. Miguel Guanira E.
numDat++;
suma += dato;
}
promedio = (double) suma/numDat;

En este programa busca obtener el promedio de varios números ingresados. La


iteración debería terminar luego de leer 50 datos (while (numDat<MAXDAT), pero se
ha agregado otro punto de control para la salida al ciclo iterativo y es cuando se lea el
valor -1 para la variable dato.
Muchas veces el algoritmo propuesto no requiere que el ciclo se controle al inicio o al
final, por lo que la orden continue nos permite implementar ciclos con controles
intermedios como se muestra a continuación:
while (1) { //Aparentemente es un ciclo sin fin

if (…) break; //Pero si se cumple esta condición se sale del while

}

Instrucción continue
Se usa sólo en bloques iterativos. Esta instrucción da por terminado un ciclo de la
iteración.
Ejemplo:
#include <stdio.h>
#define MAXDAT 50
int main(){
int numDat=0, suma = 0, dato;
double promedio;
while (numDat<MAXDAT){
scanf("%d", &dato);
if (dato == -1) break;
if (dato <0) continue;
numDat++;
suma+=dato;
}
promedio= (double)suma/numDat;

Este programa es similar al anterior, pero aquí se descartan los valores negativos.

Instrucción switch (estructuras de decisión múltiple)


switch (expresión) {
case constante entera:
instrucciones;
case constante :
instrucciones;
...
default :
instrucciones;
}
3/4
Curso: Técnicas de programación [INF144] J. Miguel Guanira E.
Si el valor de la expresión coincide con una de las constantes, entonces se transfiere
la ejecución del programa al lugar de la constante, esto es, se continúa el
procesamiento a partir de allí. Las constantes sirven como "etiquetas" de salto.
La cláusula "default" es opcional, se utiliza para tratar situaciones en las que el valor
de la expresión no coincide con las constantes. Si no se utiliza la cláusula "default" y el
valor de la expresión no coincide con las constantes, se continúa con el resto del
programa.
No se pueden repetir las constantes.
Luego de ejecutar las instrucciones para un caso (case) se continuará ejecutando el
siguiente caso a menos que al final del grupo de instrucciones coloquemos la clausula
break;
Ejemplo:
int a;
printf("Ingrese un valor: ");
scanf("%d", &a);
switch (a) {
case 1 :
printf("uno\n");
case 2 :
printf ("dos\n");
case 3 :
case 4 :
case 5 :
printf("tres, cuatro, cinco\n");
case 6 :
printf("seis\n");
break;
case 7 :
printf("siete\n");
break;
default:
printf("otro número\n");
}
...

Si al ejecutar el programa ingresamos el valor de 1 se imprimirá:


uno
dos
tres, cuatro, cinco
seis.
En otras palabras no parará hasta encontrar un break.

4/4

También podría gustarte