12.185 cursos gratis
8.727.992 alumnos
Facebook Twitter YouTube
Busca cursos gratis:

Introducción al Lenguaje C

Autor: Fernando Guerrero
Curso:
8,81/10 (467 opiniones) |73701 alumnos|Fecha publicación: 10/05/2004

Capítulo 7:

 Sentencias


SENTENCIAS

Una sentencia es cualquier expresión en C que se espera que tenga alguna consecuencia. Pueden ser asignaciones, operaciones, llamadas a funciones o combinaciones de ellas.

Toda sentencia termina con un ";". Una sentencia simple consiste en una expresión acabada en un punto y coma (;).7.1 Etiquetas de sentencia

Sirven para etiquetar una sentencia de forma que el control del programa pueda ser transferido a ella. Se separan de la sentencia por dos puntos ":".

La sintaxis es:etiqueta: sentencia;
Por ejemplo, etiq100: x++;.7.2 Sentencias compuestas

Es un conjunto de sentencia simples que se encierran entre los símbolos "{" y "}" para formar un bloque de código. Pueden aparecer en cualquier sitio en el que podría aparecer una sentencia simple. Pueden contener declaraciones de nuevos objetos (el alcance de la declaración afecta al bloque).

La sintaxis es:{
sentencia;
sentencia;
¿.
sentencia;
}

7.3 Sentencias de selección

Existen dos tipos, if y switch. Además, el operador "?" es una alternativa para if en ciertas situaciones. if y switch. Además, el operador "?" es una alternativa para if en ciertas situaciones.

IF

La forma general es:

if
(expresion) sentencia;
else sentencia;

Donde sentencia puede ser una sentencia simple, un bloque de sentencias o nada (en el caso de sentencias vacías). La cláusula else es opcional. Si la expresión del if es cierta (cualquier valor que no sea 0), se ejecuta la sentencia o el bloque de sentencias que constituye el objetivo del if; en cualquier otro caso se ejecuta la sentencia o bloque de sentencias que constituye el objetivo del else, si existe. Siempre se ejecuta el código asociado al if o al else, nunca ambos.

Un if anidado es un if que es el objeto de otro if o else. Son muy comunes en la programación. Un sentencia else siempre se refiere al if más próximo que esté en el mismo bloque que el else y que no esté asociado con un if. Por ejemplo: else es opcional. Si la expresión del if es cierta (cualquier valor que no sea 0), se ejecuta la sentencia o el bloque de sentencias que constituye el objetivo del if; en cualquier otro caso se ejecuta la sentencia o bloque de sentencias que constituye el objetivo del else, si existe. Siempre se ejecuta el código asociado al if o al else, nunca ambos.

if(i) {
if(j) sentencia 1;
if(k) sentencia 2; /* este if esta */
else sentencia 3; /* asociado con este else */
}

El estándar ANSI específica que al menos se deben permitir 15 niveles de anidamiento. En la práctica, la mayoría de los compiladores permiten bastantes más. La alternativa ?

Se puede usar el operador "?" para reemplazar las sentencias if-else con la forma general:
general:if(condición) Expresión1;
else Expresión2;
la ? es un operador ternario, ya que necesita tres operandos y tiene la forma general: Condición ? Expresión1 : Expresión2;Donde Condición, Expresión1 y Expresión2 son expresiones. El valor de una expresión con ? se determina de esta forma, se evalúa Condición, si es cierta se evalúa Expresión1 y se convierte en el valor de la expresión completa. Si Condición es falsa, se evalúa Expresión2 y su valor se convierte en el valor de la expresión completa. Por ejemplo:

x = 10;
y = x >9 ? 100 : 200;

En el ejemplo a "y" se le esta asignando el valor 100.

SWITCH

Es una sentencia de selección múltiple, que compara sucesivamente el valor de una expresión con una lista de constantes enteras o de caracteres. Cuando se encuentra una16-correspondencia, se ejecutan las sentencias asociadas con la constante. La forma general es:

-correspondencia, se ejecutan las sentencias asociadas con la constante. La forma general es:
switch (expresión) {
case constante1:
secuencia de sentencias;
break;
¿..
¿..
default:
secuencia de sentencias;
}

Se comprueba el valor de la expresión, por orden, con los valores de las constantes especificadas en las sentencias case. Cuando se encuentra una correspondencia, se ejecuta la secuencia de sentencias asociada con ese case, hasta que se encuentra la sentencia break o el final de la sentencia switch. Si no se incluye la sentencia break, sigue buscando más correspondencias en las siguientes sentencias case. La sentencia sentencia break o el final de la sentencia switch. Si no se incluye la sentencia break, El estándar ANSI específica que una sentencia switch debe permitir al menos 257 sentencias case. En la práctica el número empleado es menor por razones de eficiencia.

Aunque case es una sentencia de etiqueta, no tiene calidad por sí misma fuera de un case. En la práctica el número empleado es menor por razones de eficiencia.

Aunque case es una sentencia de etiqueta, no tiene calidad por sí misma fuera de un case es una sentencia de etiqueta, no tiene calidad por sí misma fuera de un switch.

La sentencia switch se diferencia de la sentencia if en que sólo puede comparar la igualdad, mientras que if puede evaluar expresiones relacionales o lógicas.

No puede haber dos constantes case en el mismo switch que tengan los mismos valores (por supuesto que una sentencia switch contenida en otra sentencia switch pude tener constantes case que sean iguales).

Si se utilizan constantes de tipo carácter en la sentencia switch, se convierten automáticamente a sus valores enteros.

7.4 Sentencias de iteración

También denominadas bucles. Permiten realizar un conjunto de instrucciones hasta que se alcance una cierta condición (que puede estar predefinida como en el bucle for; o no haber final predeterminado, como en los bucles while y do-while). FOR

El formato general es:for (inicialización; condición; incremento) sentencia; La inicialización normalmente es una sentencia de asignación que se utiliza para iniciar la variable de control del bucle.

La condición es una expresión relacional que determina cuando finaliza el bucle. El incremento define como cambia la variable de control cada vez que se repite el bucle.

Estas tres secciones principales deben ser separadas por punto y coma (";"). El bulce for continua ejecutándose mientras que la condición sea cierta. Una vez que la condición es falsa, la ejecución del programa sigue por la sentencia siguiente al for.

No es obligatoria ninguna de las tres expresiones, por ejemplo, se puede realizar un bucle infinito de la forma:

for.

No es obligatoria ninguna de las tres expresiones, por ejemplo, se puede realizar un bucle infinito de la forma:for(;;) printf("este bucle estará siempre ejecutándose.\n");WHILE

Su forma general es:while (condición) sentencia; La condición puede ser cualquier expresión, cualquier valor distinto de 0 es cierto. El bucle itera mientras la condición sea cierta. Cuando la condición se hace falsa, el control del programa pasa a la línea siguiente al código del bucle.DO-WHILE A diferencia de los bucles for y while, que analizan la condición del bucle al principio del mismo, el bucle do-while analiza la condición al final del bucle. Esto significa que le bucle do-while siempre se ejecuta al menos una vez. La forma general es:

for y while, que analizan la condición del bucle al principio
do {
sentencia;
} while (condición);

Aunque las llaves no son necesarias cuando sólo hay una sentencia, se utilizan normalmente para evitar confusiones al programador con el while.

7.5 Sentencias de salto

C tiene cuatro sentencias que llevan a cabo un salto incondicional (además de goto, pero su uso no está bien visto por sus programadores): return, break, exit() y continue. goto, pero su uso no está bien visto por sus programadores): return, break, exit() y continue.

RETURN

Se usa para volver de una función. Se trata de una sentencia de salto porque hace que la ejecución vuelva al punto en que se hizo la llamada a la función. Si hay algún valor asociado con return, se trata del valor de vuelta de la función. Si no se especifica un valor de vuelta, se asume que devuelve un valor sin sentido.

Donde expresión es opcional. Se pueden usar tantas sentencias return como se quiera en una función. Sin embargo, la función termina al encontrar el primero.

expresión es opcional. Se pueden usar tantas sentencias return como se quiera en una función. Sin embargo, la función termina al encontrar el primero.

BREAK

Tiene dos usos: para finalizar un case en una sentencia switch y para forzar la terminación inmediata de un bucle, saltando la evaluación condicional normal del ciclo.

Cuando se encuentra la sentencia break dentro de un bucle, el bucle finaliza inmediatamente y el control sigue en la sentencia posterior al bucle.

EXIT()

Igual que se puede interrumpir un bucle, se puede salir anticipadamente de un programa usando la función exit() de la biblioteca estándar. Esta función da lugar a la terminación inmediata del programa, forzando la vuelta al sistema operativo. La forma general de la
función exit() es:

void exit (int código_de_vuelta);
El valor de código_de_vuelta es el que se devuelve al proceso de llamada, que normalmente es el sistema operativo. Generalmente se usa un cero como código de vuelta para indicar que se trata de una terminación normal del programa. Se utiliza otros argumentos para indicar algún tipo de error.

CONTINUE

Funciona de forma similar a break. Sin embargo, en vez de forzar la terminación, break. Sin embargo, en vez de forzar la terminación, continue fuerza una nueva iteración del bucle y salta cualquier código que exista entremedias. Para el bucle for, continue hace que se ejecuten las partes de prueba condicional y de incremento del bucle. Para los bucles while y do-while, el control del programa pasa a la prueba condicional.

Capítulo siguiente - Funciones
Capítulo anterior - Operadores

Nuestras novedades en tu e-mail

Escribe tu e-mail:

Al presionar "Recibir" estás dándote de alta y aceptas las condiciones legales de mailxmail

Cursos similares a Introducción al Lenguaje C


  • Vídeo
  • Alumnos
  • Valoración
  • Cursos
1. Lenguaje C++. Guía para Programadores
C++ es un potente lenguaje de programación que apareció en 1980, continuando con... [01/07/04]
37.692  
2. Action Script 3. Lenguaje de programación
Action script 3 . Este curso de informática fue realizado especialmente para las... [04/05/11]
274
Curso con video
3. Introducción a Oracle
En el curso se introducen los conceptos básicos para saber que es un Gestor de... [01/02/06]
21.247  

¿Qué es mailxmail.com?|ISSN: 1699-4914|Ayuda
Publicidad|Condiciones legales de mailxmail


¿Te gustaría visitar más cursos gratis de Programación?