La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

EXPRESIONES Y SENTENCIAS

Presentaciones similares


Presentación del tema: "EXPRESIONES Y SENTENCIAS"— Transcripción de la presentación:

1 EXPRESIONES Y SENTENCIAS
Se entiende por expresión una combinación de operadores y operandos que tiene un valor. El valor se puede averiguar realizando las operaciones en el orden dictado por la precedencia de los operadores.

2 EXPRESIONES Y SENTENCIAS
Una expresión se transforma en sentencia simple cuando va seguida de un punto y coma; las sentencias son las piezas con las que se construye un programa. Expresiones Sentencias Valor 3 3; 3 x = 0 x = 0; 0 i++ i++; ? 5 > 3 5 > 3; 1 6 + (c=3+8) 6 + (c=3+8); 17 El punto y coma se denomina terminador de sentencias (en Pascal, separador de sentencias).

3 EXPRESIONES Y SENTENCIAS Expresiones compuestas, operador coma.
El operador coma se utiliza para unir varias expresiones. Una secuencia de expresiones separadas por el operador coma se evalúa de izquierda a derecha. El valor de la expresión global es el de la expresión más a la derecha (pero puede depender de la evaluación de las otras expresiones). x = (y=3, y+1) x vale 4 x = (y=20, y=y-5, 30/y) x vale 2 El operador coma es el operador de menor precedencia.

4 EXPRESIONES Y SENTENCIAS: Sentencias compuestas, bloques
Se denomina sentencia compuesta o bloque a un conjunto de sentencias encerradas entre llaves {}. Las sentencias situadas dentro de las llaves pueden ser declaraciones, otras sentencias compuestas o sentencias de flujo de control. Toda función debe contener al menos una sentencia compuesta.

5 EXPRESIONES Y SENTENCIAS Sentencias compuestas, bloques
Es frecuente que las sentencias de flujo de control se compongan de sentencias compuestas. Detrás de la llave que finaliza una sentencia compuesta o bloque no se pone un punto y coma.

6 EXPRESIONES Y SENTENCIAS Sentencias de flujo de control
Las sentencias de flujo de control modifican la ejecución secuencial de las sentencias que forman el programa. Se clasifican en tres grupos: sentencias de selección: if-else, switch sentencias de iteración: while, do-while, for sentencias de salto: break, continue, goto, return

7 SENTENCIAS CONDICIONALES if-else
Las sentencias condicionales se utilizan para ejecutar selectivamente un conjunto de sentencias, según se satisfaga o no una condición. La sentencia if-else se utiliza para ejecutar uno de dos posibles conjuntos alternativos de sentencias, dependiendo del resultado de evaluar una expresión.

8 SENTENCIAS CONDICIONALES if-else
La sintaxis de la sentencia if-else es: if ( expresión ) /* si expresión se evalúa a un valor distinto de 0 */ sentencia 1 else /* si expresión se evalúa a 0 */ sentencia 2

9 SENTENCIAS CONDICIONALES if-else
expresión debe encontrarse siempre entre paréntesis y las sentencias sentencia 1 y sentencia 2 pueden ser simples o compuestas (bloques). Siendo opcional la parte else, la aparente ambigüedad de ciertas configuraciones de sentencias if-else anidadas se resuelve como sigue: la parte else se asocia con el if sin else más próximo del mismo bloque.

10 SENTENCIAS CONDICIONALES switch
La sentencia switch es una forma alternativa de if anidados para evaluar decisiones múltiples. Su sintaxis es: switch ( expresión ) { case expr_cte1: case expr_cteN: lista_sentencias 1 lista_sentencias N break; break; case expr_cte2: default: lista_sentencias 2 lista_sentencias break; break; }

11 SENTENCIAS CONDICIONALES switch
Cuando el valor de expresión no se corresponde con ninguna de las expr_cte y existe el caso default, se ejecuta la lista_sentencias correspondiente a éste caso. Las palabras clave case y default no interrumpen por sí mismas el flujo de control del programa; por ello es necesario una sentencia de salto (normalmente la instrucción break). Una sentencia switch es más eficiente que una escalera de if-else.

12 SENTENCIAS CONDICIONALES Switch, Advertencias
No pueden existir dos casos iguales en un mismo switch (un mismo caso, sí puede ocurrir en distintos switch anidados). Si se omite el break al final de un caso, el programa pasa a ejecutar las sentencias de los casos siguientes hasta encontrar un break o hasta el final del switch. Se recomienda situar el caso default en último lugar e incluir siempre un break al final de su secuencia de sentencias asociada.

13 SENTENCIAS REPETITIVAS while
Las sentencias repetitivas se utilizan para seguir ejecutando una sentencia o un conjunto de sentencias mientras se cumpla una cierta condición. La sintaxis del while es: while ( expresión ) sentencia

14 SENTENCIAS REPETITIVAS while
sentencia, simple o compuesta, se ejecutará repetidamente mientras el valor de expresión sea distinto de cero (cierta) . La comprobación de expresión se realiza antes de la ejecución de sentencia, y por tanto puede que ésta no se ejecute ni una vez. El cuerpo del while puede estar vacío, es decir, estar formado por la sentencia nula, p.e.: while ( (car=getchar()) != ‘A’ ) ;

15 SENTENCIAS REPETITIVAS do-while
La sintaxis es: do sentencia while ( expresión ); sentencia se ejecuta repetidamente mientras el valor de expresión sea distinto de cero (cierta).

16 SENTENCIAS REPETITIVAS do-while
La comprobación de expresión se realiza después de la ejecución de sentencia, y por tanto ésta siempre se ejecuta al menos una vez. Aunque las llaves no son necesarias cuando sentencia es una sentencia simple, se aconseja utilizarlas para mejorar la legibilidad

17 SENTENCIAS REPETITIVAS for
Es la más frecuentemente usada para crear bucles; su sintaxis es: for ( expresión 1; expresión 2; expresión 3 ) sentencia expresión 1: especifica la inicialización del bucle; se ejecutará una sola vez. expresión 2: especifica la comprobación que se realizará antes de cada iteración. expresión 3: especifica las instrucciones que se ejecutarán al final de cada iteración.

18 SENTENCIAS REPETITIVAS for
El bucle se abandona cuando expresión 2 vale 0 (la condición no se cumple). El bucle for es equivalente a un bucle while: expresión 1; while ( expresión 2 ) { sentencia expresión 3; }

19 SENTENCIAS REPETITIVAS for
Todas las expresiones son opcionales pero deben de mantenerse los puntos y comas. for (;;) ; En el caso de no especificarse expresión 2 se considera que siempre es cierta, con lo que el bucle se ejecutará indefinidamente.

20 SENTENCIAS REPETITIVAS for
Los límites del bucle pueden alterarse desde el interior del propio bucle, p.e.: for ( n=1; n<10000; n+=delta ) { ... delta--; } Las variables de control mantienen su valor tras la ejecución de éste

21 SENTENCIAS REPETITIVAS for
Se pueden utilizar dos o más variables de control: for ( i=0, j=0; i+j<10; i++, j+=2 ) printf( “%d %d\n”, i, j ); El cuerpo del for puede estar vacío, es decir, estar formado por la sentencia nula, p.e.: for( x=1, y=1; x<MAX; y*=x++ ) ; También se puede salir de un bucle mediante una instrucción de salto (p.e. el caso del bucle infinito)

22 SENTENCIAS DE SALTO Las sentencias de salto se utilizan para alterar de manera incondicional el orden de ejecución de las sentencias de un programa. Sólo deberían utilizarse con el fin de simplificar o mejorar los algoritmos. Las sentencias condicionales o repetitivas no deben sustituirse nunca por sentencias de salto, ya que generan programas más difíciles de seguir, más propensos a errores y mas difíciles de modificar.

23 SENTENCIAS DE SALTO break
Se utiliza para terminar la ejecución de bucles o para salir de una sentencia switch. Su sintaxis es: break;

24 SENTENCIAS DE SALTO break
Se utiliza en un bucle while, do-while o for para transferir el control a la siguiente sentencia fuera del bucle. while( ... ) { while ( ... ) { break; while( ... ) { } break; /* salto hasta aquí */ } ... /* salto hasta aquí */ Es de especial utilidad cuando existe un suceso externo que controla un bucle.

25 SENTENCIAS DE SALTO continue
Se utiliza en un bucle while, do-while o for para transferir el control al final del cuerpo del bucle (concluye la iteración). Su sintaxis es: continue; En los bucles while y do-while después de un continue, se pasa a comprobar la condición de finalización. En los bucles for después de un continue se evalúa la tercera expresión de la sentencia for y después se comprueba la condición de finalización.

26 SENTENCIAS DE SALTO goto
El control del flujo de un programa puede alterarse incondicionalmente usando la sentencia goto. Su sintaxis es: goto identificador; El identificador es una etiqueta que se utiliza para señalar la sentencia a la que se transfiere el control dentro de la misma función. identificador: sentencia

27 SENTENCIAS DE SALTO goto
La sentencia goto sólo debería usarse para salir de un conjunto de bucles anidados en caso de error. Advertencias: Cualquier otro uso es prescindible, y su uso siempre destruye la estructura del programa. Dos sentencias no pueden tener el mismo identificador

28 SENTENCIAS DE SALTO return
Esta sentencia devuelve el control desde el interior de una función a la sentencia que sigue a su llamada. Su sintaxis es: return expresión; El valor que devuelve la función que la contiene es el resultado de evaluar expresión (en el caso del main, el valor se devuelve al entorno y el programa finaliza). La sentencia return puede utilizarse sin expresión asociada.

29 SENTENCIAS DE SALTO return
Si la sentencia lleva una expresión asociada, el valor devuelto se convierte, como si de una asignación se tratara, al tipo indicado en la definición de la función. Salir de una función por su última sentencia (seguida por }) equivale a realizar un return sin expresión asociada. En una misma funcion puede existir más de una sentencia return.


Descargar ppt "EXPRESIONES Y SENTENCIAS"

Presentaciones similares


Anuncios Google