0% encontró este documento útil (0 votos)
4 vistas25 páginas

Introducci On A La Programaci Onenc - Control de Flujo

Cargado por

Jose Rey CId
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
4 vistas25 páginas

Introducci On A La Programaci Onenc - Control de Flujo

Cargado por

Jose Rey CId
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Introducción a la Programación en C

–Control de Flujo–

Christopher Expósito-Izquierdo
cexposit@[Link]

Airam Expósito-Márquez
aexposim@[Link]

Israel López-Plata
ilopezpl@[Link]

Belén Melián-Batista
mbmelian@[Link]

José Marcos Moreno-Vega


jmmoreno@[Link]
Introducción a las Sentencias de Control de Flujo
Sentencia If
Sentencia switch
Introducción a los Bucles
Sentencias break y continue
Errores Habituales

Contenidos

1 Introducción a las Sentencias de Control de Flujo

2 Sentencia If

3 Sentencia switch

4 Introducción a los Bucles


for
while
do-while

5 Sentencias break y continue

6 Errores Habituales

Introducción a la Programación en C
Introducción a las Sentencias de Control de Flujo
Sentencia If
Sentencia switch
Introducción a los Bucles
Sentencias break y continue
Errores Habituales

Introducción a las Sentencias de Control de Flujo:

Flujo de Ejecución
Indica el orden en que se ejecutan las sentencias en un programa

Hasta ahora las sentencias se ejecutaban en el orden en que venı́an definidas


en el código fuente. Esto plantea ciertos problemas:

Existen contextos en que queremos que se ejecute un conjunto de


sentencias únicamente si se cumple una determinada condición

Es tedioso ejecutar sentencias que se repiten una y otra vez

Introducción a la Programación en C
Introducción a las Sentencias de Control de Flujo
Sentencia If
Sentencia switch
Introducción a los Bucles
Sentencias break y continue
Errores Habituales

Introducción a las Sentencias de Control de Flujo:

Sentencia 1

int a = 4; Sentencia 2
double b = 7.87;
char c = ’x’; Sentencia 3
...
a = a * 9; ...

Sentencia N

Introducción a la Programación en C
Introducción a las Sentencias de Control de Flujo
Sentencia If
Sentencia switch
Introducción a los Bucles
Sentencias break y continue
Errores Habituales

Sentencia If:

Una sentencia condicional se define tal como sigue:


if (expresión) {
secuencia de sentencias 1
} else {
secuencia de sentencias 2
}

La sentencia condicional tiene el siguiente comportamiento:


Si expresión es un valor distinto de 0 se ejecuta secuencia de
sentencias 1
Si expresión es 0 se ejecuta secuencia de sentencias 2

Introducción a la Programación en C
Introducción a las Sentencias de Control de Flujo
Sentencia If
Sentencia switch
Introducción a los Bucles
Sentencias break y continue
Errores Habituales

Sentencia If:

int a = ...;
int b = ...; expresión

no
if (a > b) { sı́
printf("a es mayor que b");
Sentencias 1 Sentencias 2
} else {
printf("a no es mayor que b");
}

Introducción a la Programación en C
Introducción a las Sentencias de Control de Flujo
Sentencia If
Sentencia switch
Introducción a los Bucles
Sentencias break y continue
Errores Habituales

Sentencia switch:

La sentencia switch permite decidir qué secuencia de código se va a


ejecutar a continuación. Ésta se define tal como sigue:
switch (expresión) {
case expresión 1:
secuencia de sentencias 1
break;
...
case expresión N:
secuencia de sentencias N
break;
default:
secuencia de sentencias por defecto
}

Introducción a la Programación en C
Introducción a las Sentencias de Control de Flujo
Sentencia If
Sentencia switch
Introducción a los Bucles
Sentencias break y continue
Errores Habituales

Sentencia switch:

La sentencia switch tiene el siguiente comportamiento:


Primeramente se evalúa la expresión del switch. Ésta debe dar como
resultado un valor entero o un carácter
Después el programa empezará a ejecutar a partir de la sentencia case
cuya expresión coincida con el resultado obtenido de la expresión del
switch. Se ejecutarán todas las sentencias que haya a continuación
hasta encontrar una sentencia break o se llegue al final de la sentencia
switch completa. Si en el camino se encuentran más sentencias case,
éstas serán ignoradas
Si no se encuentra ninguna sentencia case cuya expresión coincida con
el resultado del switch, pueden ocurrir dos cosas:
Que no exista una sentencia default, en cuyo caso finalizará la sentencia
switch
Que exista una sentencia default, en cuyo caso se ejecutarán todas las
sentencias que haya a continuación hasta encontrar una sentencia break,
o se llegue al final de la sentencia switch completa

Introducción a la Programación en C
Introducción a las Sentencias de Control de Flujo
Sentencia If
Sentencia switch
Introducción a los Bucles
Sentencias break y continue
Errores Habituales

Sentencia switch:

expresión

expresión 1 expresión 2 ... expresión N

Sentencias 1 Sentencias 2 ... Sentencias N

Introducción a la Programación en C
Introducción a las Sentencias de Control de Flujo
Sentencia If
Sentencia switch
Introducción a los Bucles
Sentencias break y continue
Errores Habituales

Sentencia switch:

#include <stdio.h>

void main(void) {
int input = ...;
switch (input) {
case 0:
printf(”El valor introducido es 0”);
break;
case 1:
case 20:
printf(”El valor introducido es 1 o 20”);
break;
case 3:
printf(”El valor introducido es 3”);
break;
default:
printf(”El valor introducido no es 0, 1, 3 o 20”);
}
}

Introducción a la Programación en C
Introducción a las Sentencias de Control de Flujo
Sentencia If
Sentencia switch
Introducción a los Bucles
Sentencias break y continue
Errores Habituales

Sentencia switch:

enum TipoMes {enero, febrero,...}


typedef enum TipoMes Mes;

void main(void) {
Mes mes = ...;
int dias;
switch (mes) {
case abril:
case junio:
case septiembre:
case noviembre:
dias = 30;
break;
case febrero:
dias = 28;
break;
default:
dias = 31;
}
}

Introducción a la Programación en C
Introducción a las Sentencias de Control de Flujo
Sentencia If
for
Sentencia switch
while
Introducción a los Bucles
do-while
Sentencias break y continue
Errores Habituales

Introducción a los Bucles:

Un bucle permite la repetición controlada de un conjunto de sentencias


A cada repetición se le conoce con el nombre de iteración
Los bucles son ampliamente empleados en todos los lenguajes de
programación

Utilidades:
Repetir algo un número determinado de veces
Recorrer estructuras de datos (e.g., arrays)
Repetir una secuencia de sentencias mientras se cumpla una condición
...

Introducción a la Programación en C
Introducción a las Sentencias de Control de Flujo
Sentencia If
for
Sentencia switch
while
Introducción a los Bucles
do-while
Sentencias break y continue
Errores Habituales

Introducción a los Bucles: for

Un bucle for se define tal como sigue:


for (expresión1; expresión2; expresión3) {
secuencia de sentencias
}

El funcionamiento del bucle for es como sigue:


La primera vez que se ejecuta la sentencia for:

Se ejecuta expresión1
Se evalúa expresión2 y se compara el resultado:
Si el resultado es verdadero se ejecuta la secuencia de sentencias y se
vuelve a empezar la sentencia completa

Si el resultado es falso, finaliza la ejecución de la sentencia

Introducción a la Programación en C
Introducción a las Sentencias de Control de Flujo
Sentencia If
for
Sentencia switch
while
Introducción a los Bucles
do-while
Sentencias break y continue
Errores Habituales

Introducción a los Bucles: for

Un bucle for se define tal como sigue:


for (expresión1; expresión2; expresión3) {
secuencia de sentencias
}

El funcionamiento del bucle for es como sigue:


La segunda y sucesivas veces que se ejecuta la sentencia for:

Se ejecuta expresión3
Se evalúa expresión2 y se compara el resultado:

Si el resultado es verdadero se ejecuta la secuencia de sentencias y se


vuelve a empezar la sentencia completa

Si el resultado es falso, finaliza la ejecución de la sentencia

Introducción a la Programación en C
Introducción a las Sentencias de Control de Flujo
Sentencia If
for
Sentencia switch
while
Introducción a los Bucles
do-while
Sentencias break y continue
Errores Habituales

Introducción a los Bucles: for

expresión 1

expresión 2
int i;
sı́

for (i = 0; i < 10; i++) { Sentencias

printf("Iteracion %d", i); no


}
expresión 3

Introducción a la Programación en C
Introducción a las Sentencias de Control de Flujo
Sentencia If
for
Sentencia switch
while
Introducción a los Bucles
do-while
Sentencias break y continue
Errores Habituales

Introducción a los Bucles: for

#define ROWS 5
#define COLUMNS 10
expresión 1
...

int matrix[ROWS][COLUMNS] = ...; expresión 2

int i; sı́

int j; Sentencias

no
for (i = 0; i < ROWS; i++) {
printf(”Row %d:”, i); expresión 3
for (j = 0; j < COLUMNS; j++) {
printf(”\t %d”, matrix[i][j]);
}
printf(”\n”);
}

Introducción a la Programación en C
Introducción a las Sentencias de Control de Flujo
Sentencia If
for
Sentencia switch
while
Introducción a los Bucles
do-while
Sentencias break y continue
Errores Habituales

Introducción a los Bucles: while

Un bucle while se define tal como sigue:


while (expresión) {
secuencia de sentencias
}

El funcionamiento del bucle while es como sigue:


Mientras expresión sea un valor verdadero (valor distinto de 0), se
ejecuta secuencia de sentencias
En cada iteración se evalua expresión
Si expresión devuelve un valor falso (valor igual a 0), se finaliza la
ejecución del bucle

Introducción a la Programación en C
Introducción a las Sentencias de Control de Flujo
Sentencia If
for
Sentencia switch
while
Introducción a los Bucles
do-while
Sentencias break y continue
Errores Habituales

Introducción a los Bucles: while

expresión
int contador = 10;
int i = 0;
sı́

while (i < contador) { Sentencias no


printf("Iteracion %d", i);
i = i + 1;
}

Introducción a la Programación en C
Introducción a las Sentencias de Control de Flujo
Sentencia If
for
Sentencia switch
while
Introducción a los Bucles
do-while
Sentencias break y continue
Errores Habituales

Introducción a los Bucles: do-while

Un bucle do-while se define tal como sigue:


do {
secuencia de sentencias
} while (expresion);

El funcionamiento del bucle do-while es como sigue:


Se ejecuta la secuencia de sentencias
Se ejecuta expresión y se comprueba el resultado. Si es verdadero se
repite la ejecución de la secuencia de sentencias. Si es falso, finaliza
dicha ejecución

Introducción a la Programación en C
Introducción a las Sentencias de Control de Flujo
Sentencia If
for
Sentencia switch
while
Introducción a los Bucles
do-while
Sentencias break y continue
Errores Habituales

Introducción a los Bucles: do-while

int suma = 0;
int i = 0;
Sentencias
do {
suma = suma + i; sı́
i = i + 1;
expresión
} while (i < 10);
no
printf("Suma %d: ", suma);

Introducción a la Programación en C
Introducción a las Sentencias de Control de Flujo
Sentencia If
Sentencia switch
Introducción a los Bucles
Sentencias break y continue
Errores Habituales

Sentencias break y continue:

La sentencia break afecta a las sentencias switch, while, for y do-while


de la forma siguiente:

Si aparece una sentencia break dentro de la secuencia de sentencias de


cualquiera de las anteriores, dicha sentencia termina inmediatamente

Si aparece en el interior de un bucle anidado sólo finaliza la sentencia


de iteración más interna, el resto se ejecuta de forma normal

Introducción a la Programación en C
Introducción a las Sentencias de Control de Flujo
Sentencia If
Sentencia switch
Introducción a los Bucles
Sentencias break y continue
Errores Habituales

Sentencias break y continue:

La sentencia continue afecta a las sentencias while, for y do-while de la


forma siguiente:

Si aparece una sentencia continue dentro de una secuencia de


sentencias de las anteriores, dicha sentencia da por terminada la
iteración actual y se ejecuta una nueva iteración, evaluando de nuevo la
expresión condicional del bucle

Si aparece en el interior de un bucle anidado sólo afecta a la sentencia


de iteración más interna, el resto se ejecuta de forma normal

Introducción a la Programación en C
Introducción a las Sentencias de Control de Flujo
Sentencia If
Sentencia switch
Introducción a los Bucles
Sentencias break y continue
Errores Habituales

Sentencias break y continue:

int contador = 10;


int i = 0;
expresión
while (i < contador) {
sı́
if (i == 5) {
i = i + 1; Sentencias
continue
continue; break no
}
printf("Iteracion %d", i);
if (i == 7) {
break;
}
i = i + 1;
}

Introducción a la Programación en C
Introducción a las Sentencias de Control de Flujo
Sentencia If
Sentencia switch
Introducción a los Bucles
Sentencias break y continue
Errores Habituales

Errores Habituales:

No utilizar secuencias delimitadas entre llaves


Incluir un ; junto a la sentencia de control
Confusiones entre asignación y comparación de igualdad. Si se
escribe if (contador = 0), se está asignando 0 a contador, no se está
haciendo una comparación sino una asignación
Bucles infinitos. A veces no se controla bien la condición de control y
se ejecuta un bucle infinito. Por ejemplo si se escribe:
int contador = 0;
int valor = 2;

while (contador < 20) {


contador = contador * 2;
valor = valor * 2;
}

Introducción a la Programación en C
Introducción a las Sentencias de Control de Flujo
Sentencia If
Sentencia switch
Introducción a los Bucles
Sentencias break y continue
Errores Habituales

Introducción a la Programación en C
–Control de Flujo–
Christopher Expósito-Izquierdo
cexposit@[Link]

Airam Expósito-Márquez
aexposim@[Link]

Israel López-Plata
ilopezpl@[Link]

Belén Melián-Batista
mbmelian@[Link]

José Marcos Moreno-Vega


jmmoreno@[Link]

Introducción a la Programación en C

También podría gustarte