Sentencias
Espero que hayas tenido la paciencia suficiente para llegar hasta aquí, y que no te hayas asustado demasiado. Ahora empezaremos a entrar en la parte interesante y estaremos en condiciones de añadir algún ejemplo.
El elemento que nos falta para empezar a escribir programas que funcionen son las sentencias.
Existen sentencias de varios tipos, que nos permitirán enfrentarnos a todas las situaciones posibles en programación. Estos tipos son:
-Bloques
-Expresiones [Llamada a función, Asignación, Nula]
-Bucles [while, do...while, for]
-Etiquetas [etiquetas de identificación, case, default]
-Saltos [break, continue, goto, return]
-Selección [if...else, switch]
-Comentarios
Bloques
Una sentencia compuesta o un bloque es un conjunto de sentencias, que puede estar vacía, encerrada entre llaves "{}". Sintácticamente, un bloque se considera como una única sentencia.
También se usa en variables compuestas, como veremos en el capítulo de variables II, y en la definición de cuerpo de funciones. Los bloques pueden estar anidados hasta cualquier profundidad.
Expresiones
Una expresión seguida de un punto y coma (;), forma una sentencia de expresión. La forma en que el compilador ejecuta una sentencia de este tipo evaluando la expresión. Cualquier efecto derivado de esta evaluación se completará antes de ejecutar la siguiente sentencia.
<expresión>; |
Llamadas a función
Esta es la manera de ejecutar las funciones que se definen en otras partes del programa o en el exterior de éste, ya sea una biblioteca estándar o particular. Consiste en el nombre de la función, una lista de argumentos entre paréntesis y un ";".
Por ejemplo, para ejecutar la función que declarábamos en el capítulo 3 usaríamos una sentencia como ésta:
Mayor(124, 1234); |
Pero vamos a complicar un poco la situación para ilustrar la diferencia entre una sentencia de expresión y una expresión, reflexionemos sobre el siguiente ejemplo:
Mayor(124, Mayor(12, 1234)); |
Aquí se llama dos veces a la función "Mayor", la primera vez como una sentencia; la segunda como una expresión, que nos proporciona el segundo parámetro de la sentencia.
Pero en realidad, el compilador evalúa primero la expresión, de modo que se obtenga el segundo parámetro de la función, y después llama a la función. ¿Parece complicado?. Puede ser, pero también puede resultar interesante...
En el futuro diremos mucho más sobre este tipo de sentencias, pero por el momento es suficiente.
Asignación
Las sentencias de asignación responden al siguiente esquema:
<variable> <operador de asignación> <expresión>; |
La expresión de la derecha es evaluada y el valor obtenido es asignado a la variable de la izquierda. El tipo de asignación dependerá del operador utilizado, estos operadores ya los vimos en el capítulo anterior.
La expresión puede ser, por supuesto, una llamada a función. De este modo podemos escribir un ejemplo con la función "Mayor" que tendrá más sentido que el anterior:
m = Mayor(124, 1234); |
Nula
La sentencia nula consiste en un único ";". Sirve para usarla en los casos en los que el compilador espera que aparezca una sentencia, pero en realidad no pretendemos hacer nada. Veremos ejemplo de esto cuando lleguemos a los bucles.
Ir al Principio
Comentarios