2 de mayo de 2010

Condicionales

Si en nuestro programa queremos que haya división de flujos, es interesante la opción del if / else / else if. Son instrucciones de C que permiten realizar unas lineas de codigo si se cumple una condición y otras si no se cumple. Vamos a verlo en detalle.

IF
El if permite realizar una serie de lineas del código si se cumple la condición especificada. Su sintaxis es:
  1. if (condición){
  2.     instruccion 1;
  3.     instruccion 2;
  4.     ...
  5.     instruccion n; }
Con esto, si se cumple la condición, se  realizan las instrucciones entre {} . Si no, esas lineas de código se "ignoran".
Si solo se va a ejecutar una instrucción en caso de que se cumpla la condición, se puede prescindir de los {}.
La condición se debe especificar mediante los operadores lógicos. Veamos un ejemplo:

  1.  #include
  2. int main() {
  3.      int edad;
  4.      printf("Escribe tu edad: ");
  5.      scanf("%d", &edad);
  6.      if(edad>=18) printf("Eres mayor de edad\n");
  7. }  

 Con este código conseguimos que si nuestra edad es 18 o más, nos diga que somos mayores de edad, ya que se cumple la condición y se realiza la instrucción.


ELSE
El else complementa al if. Debe ir siempre tras un if o un else if. Permite que en el caso de que no se cumpla la condición establecida en el if o el else if, se realicen otras instrucciones. Veamos su sintaxis:

  1. else {
  2.     instruccion 1;
  3.     instruccion 2;
  4.     ...
  5.     instruccion n; }
Al igual que con el if, si sólo hay una instrucción se puede prescindir de los {}.
Veamos un ejemplo con el código anterior:

  1.  #include
  2. int main() {
  3.      int edad;
  4.      printf("Escribe tu edad: ");
  5.      scanf("%d", &edad);
  6.      if(edad>=18) printf("Eres mayor de edad\n");
  7.      else printf("Eres menor de edad\n");
  8. }  
 En este caso, si somos mayores de edad (18 años a más) nos dice "Eres mayor de edad". Si no, nos dice "Eres menor de edad".

ELSE IF
El else if es un condicionante como el if, pero que a la vez excluye a otro if. Es decir, va tras otro else if u otro if. Si el if / else if no se cumple, comprueba si se cumple este. Siempre se puede sustituir por varios if consecutivos, pero así el programa tiene que comprobar todos los condicionantes, mientras que con else if, si uno se cumple los demas else if no los mira. Veamos la sintaxis:
 
  1. else if(condición) {
  2.     instruccion 1;
  3.     instruccion 2;
  4.     ...
  5.     instruccion n; }
Con ejemplos de código lo entendereís mejor:

  1.  #include
  2. int main() {
  3.      int edad;
  4.      printf("Escribe tu edad: ");
  5.      scanf("%d", &edad);
  6.      if(edad>=18) printf("Eres mayor de edad\n");
  7.      else if(edad<10)printf("Eres menor de 10 años\n"); 
  8.      else if(edad>=10 && edad<=15) printf("Tienes entre 10 y 15 años\n");
  9.      else if(edad>15 && edad<18) printf("Tienes más de 15 años pero eres menor de edad\n");
  10. }
En este caso  hay un primer if, si la edad es mayor de 18 escribe "Eres mayor de edad". Si esta condicion NO se cumple, comprueba la siguiente: else if. Quiere decir "sino si", es decir, sino se cumple que edad>18, if es menor de 10 escribe "Eres menor de 10 años". Si esta se cumple, los demas else if no los comprueba. En el caso de que no se cumpla, va comprobando los demas sucesivamtente. Si no se cumpliera ninguno, no mostraria nada. Terminaria el programa sin más.


En el caso del else if(edad>=10 && edad<=15) deben cumplirse ambas condiciones para que realice la instruccion.

No hay comentarios:

Publicar un comentario

¡No te cortes! Anímate a dar tu opinión o preguntar.