Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Introducción Al Lenguaje C

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 6

INTRODUCCIÓN AL LENGUAJE C

Estructuras de control
La estructura de control condicional if
La sentencia if nos permite elegir si se ejecuta o no un bloque de
instrucciones.

Sintaxis
if (condición)

sentencia;

if (condición) {

bloque

donde bloque representa un bloque de instrucciones.

Consideraciones acerca del uso de la sentencia if

- Olvidar los paréntesis al poner la condición del if es un

error sintáctico (los paréntesis son necesarios)

- Confundir el operador de comparación == con el operador

de asignación = puede producir errores inesperados

- Los operadores de comparación ==, ! =, <= y >= han de

escribirse sin espacios.

- => y =< no son operadores válidos en C.

- El fragmento de código afectado por la condición del if


debe sangrarse para que visualmente se interprete

correctamente el ámbito de la sentencia if:

if (condición) {

// Aquí se incluye el código

// que ha de ejecutarse sólo

// si se cumple la condición del if

// (sangrado para que se vea dónde

// empieza y dónde acaba el if)

Sentencia if-else
Se trata de la estructura selectiva simple y doble de los principios de programación

estructurada. El formato de la instrucción es:

if(expresión)

sentencia1

[else

sentencia2]

La sentencia evalúa la expresión, si ésta es verdadera (es decir, si su valor es distinto de 0)

ejecuta la sentencia1. Si no incluye la cláusula else, en el caso de que la expresión sea

falsa no haría nada; si incluye la cláusula else y la expresión es false ejecuta la

sentencia2.

Hay que tener en cuenta que, normalmente la expresión será de tipo lógico, pero puede ser

cualquier valor numérico.

También hay que tener en cuenta que tanto sentencia1 como sentencia2 pueden ser

una proposición simple o una compuesta. En el segundo caso las sentencias que forman el

bloque deberían ir encerradas entre llaves y no llevaría punto y coma final.

if(a ¡= b){

a = b;

printf(“a es distinto de b”);


}else{

b = a;

printf(“a es igual a b”);

sentencia1 y sentencia2 pueden ser a su vez estructuras de control (por ejemplo

sentencias if-else) creando estructuras anidadas.

if(a<b)

c=a;

else

if(a>b)

c=b;

else

c =0;

La asociación entre el else y su if se hace a partir de la estructura más interna. Esto es

válido también si se omite alguna cláusula else.

if(a<b)

if (a==3)

printf("b es mayor que 3");

else

printf("sólo sabemos que a es menor que b");

SENTENCIA SWITCH
Proporciona la estructura selectiva múltiple. Evalúa una expresión de tipo entero y comprueba

su valor con cada una de las cláusulas case; si coincide ejecuta la sentencia y sigue la
comprobación, en caso contrario pasa a la siguiente cláusula. default incluirá las sentencias

que se ejecutan si fallan todas las comprobaciones anteriores.

switch(expresión){

case valor1: sentencia1;

case valor2: sentencia2;

case valorn: sentencian;

default:

sentenciaDefault

A diferencia de lo que ocurre en otros lenguajes, la instrucción switch no hace cortocircuito,

es decir, una vez que ha encontrado una coincidencia en el valor de un case, continúa la

comprobación de los otros valores. Para evitar esto se puede incluir una sentencia break

después de cada caso.

switch(expresión){

case valor1: sentencia1; //No hace cortocircuito

case valor2: sentencia2; break; //Hace cortocircuito

case valorn: sentencian;

default:

sentenciaDefault

Otra característica de la sentencia es que se pueden utilizar varios casos para una misma

sentencia. Si se utilizan varias etiquetas case para una misma sentencia, la sentencia se

ejecutará si se cumplen esas condiciones.

switch(i){
case 0:
printf("Es 0\n");
break;
case 1: case 3: case 5: case 7: case 9:
printf("Es un impar menor que 10\n");
break;
case 2: case 4: case 6: case 8:
printf("Es un par menor que 10\n");
break;
default:
printf("Es mayor que 10\n");
}

ESTRUCTURAS REPETITIVAS
Sentencia while
Ejecuta las sentencias del bucle mientras una expresión es verdadera. Tiene la condición de
salida al comienzo de la estructura por lo que las sentencias se ejecutarían de 0 a n veces.
while(expresión)
sentencia;
Si expresión es distinta de 0 (es decir, si es verdadera) ejecuta la sentencia; cuando es 0
finaliza la estructura y el flujo del programa continuaría a la instrucción siguiente. Por ejemplo,
el fragmento de código siguiente escribiría los números entre 0 y 5.
int j=0;
while(j<=5){
printf("%i\n",j);
j++;
}
Sentencia for
La sentencia for también proporciona un bucle que se ejecutará de 0 a n veces pero que
incorpora un mecanismos para la inicialización de variables del bucle, controlar la salida o
modificar la variable del bucle.
for(expresión1;expresión2;expresión3){
sentencia;
La expresión1 se ejecutará antes de entrar en el bucle la primera vez, la expresión3 se
ejecuta al final de cada iteración del bucle y la expresión2 se encargará, al comienzo de
cada iteración de comprobar si deben continuar las repeticiones: si la expresión2 es
verdadera se entra en el bucle y en caso contrario se sale. Cualquiera de las tres puede ser una
expresión de cualquier tipo e incluso se puede omitir cualquiera de las tres. Sin embargo, lo
normal es utilizar la expresión1 para inicializar la variable del bucle, la expresión2 para
comprobar la salida del bucle a partir de la variable y la expresión3 para modificar el valor
de la variable del bucle. El siguiente ejemplo, también escribiría los números entre 0 y 5.
for(j=0;j<=5;j++)
printf("%i\n",j);
El funcionamiento sería exactamente el mismo que el del fragmento de código anterior.
Normalmente se elegirá un bucle for cuando se sepa cuantas veces se debe ejecutar el bucle
antes de entrar en el (bucles controlados por contador), mientras que la sentencia while se
utilizará cuando se desconozca ese dato (bucle controlado por centinela).

Sentencia do-while
Los bucles generados tanto por la sentencia for, como por la sentencia while comprueban
si el bucle debe ejecutarse al comienzo del mismo, pudiendo darse el caso de que el bucle se
repita 0 veces. La sentencia do..while haría la comprobación al final.
do
sentencia
while(expresión);
Primero ejecuta la sentencia y al final del bucle hace la comprobación. Si la expresión es
distinta de 0 (es verdadera) repite la sentencia; en caso contrario se sale del bucle.

También podría gustarte