miércoles, 30 de noviembre de 2016

Condicional If

La estructura condicional if (si), permite que en caso de que se cumpla una condición se ejecute una serie de instrucciones.

Sintaxis:
if( condicion ){
    /* Instrucciones a ejecutar en caso de que se cumpla la condicion */
}


Por ejemplo: Pedimos la edad de una persona y en caso de que sea menor de 18 años se debe imprimir un mensaje.
//*********************************************************************
#include <stdio.h>
int main(){
    int edad;
    printf("Ingrese su edad: ");
    scanf("%d",&edad);

    if(edad < 18){
        printf("\nAun eres menor de edad.");
    }
    printf("\nFin de la ejecucion");
    return 0;

}
//*********************************************************************


Como entre llaves solo hay una linea de codigo no es necesario colocar las llaves, asi que si se escribe de la siguiente forma debe tener la misma salida:
//*********************************************************************
#include <stdio.h>
int main(){
    int edad;
    printf("Ingrese su edad: ");
    scanf("%d",&edad);

    if(edad < 18)
        printf("\nAun eres menor de edad.");
    printf("\nFin de la ejecucion");   
    return 0;

}
//*********************************************************************


Nota: En la condición de if se hace uso de los operadores de relaciones para comparar.
Salida:

En caso de que sea menor a 18:

En caso de que sea mayor a 18:

Otro ejemplo: Pedir al usuario un número y mostrar un mensaje diciendo si es negativo o positivo y par o impar.
//*********************************************************************
#include <stdio.h> int main(){
    int num;
    printf("Ingrese un numero: ");
    scanf("%d",&num);
    if(num < 0){
        printf("\nEl numero es negativo");
    }
    if(num > 0)
        printf("\nEl numero es positivo");
    if( (num%2) == 0 )
        printf("\nEl numero es par");
    if( (num%2) != 0 )
        printf("\nEl numero es impar");   
    return 0;
}
//*********************************************************************

En este caso se presentan varias condiciones, primero se ingresa un numero y luego se compara en las primeras dos condiciones si es positivo o negativo y en las siguientes si es par o impar.

Nota: En la condición de if se hace uso de los operadores de relaciones para comparar.

Estas lineas de codigo pueden reducirse haciendo uso de la palabra reservada else.
Usamos else cuando estamos comparando una misma situacion. Por ejemplo cuando verificamos que el numero sea positivo o negativo, se puede indicar:
 Si num es menor que 0 muestre un mensaje y en caso de lo contrario (o en caso de que no se cumpla la condicion anterior), ejecute la siguiente.

A continuacion se podra visualizar mejor:
//*********************************************************************
#include <stdio.h> int main(){
    int num;
    printf("Ingrese un numero: ");
    scanf("%d",&num);
/* Primera situación: negativo o positivo */
    if(num < 0){
        printf("\nEl numero es negativo");
    }
    else{
        printf("\nEl numero es positivo");
    }
/* Segunda situación: par o impar */ 
    if( (num%2) == 0 )
        printf("\nEl numero es par");
    else
        printf("\nEl numero es impar");   
       
    return 0;
}
//*********************************************************************

El resultado de la ejecucion es el mismo.
Salida:
Ingresando -10

Ingresando 9:

Otro ejemplo teniendo varias condiciones respecto a una misma situacion:
//*********************************************************************
#include <stdio.h>
int main(){
    int var;
    printf("Ingrese numero: ",var);
    scanf("%d",&var);
    if( var<0 && (var%2)==0 ){   
        printf("\nEl numero es negativo y par.");
        var+=7; /* le suma 7 a var */
        printf("\n\t Ahora var es: %d",var);
    }
    else if(var<0){
        printf("\nEl numero es negativo e impar");
        var*=-2;
        printf("\n\t Ahora var es: %d",var);
    }
    else if(var>0){
        printf("\n El numero es positivo.");
        var/=10;
        printf("\n\t Ahora var es: %d",var);
    }
    return 0;
}
//*********************************************************************

Ahora, se ingresa un número y se ejecutará la primera condición, en caso de que no se cumpla se evaluará la segunda y en caso de que la segunda no se cumpla se evaluará la tercera.

* En caso de que se cumpla la primera condición no se va a realizar la comparación de la segunda ni la tercera.

* Si se colocan separados los if, sin usar else, se van a verificar siempre todas las condiciones.

* En teoría de ambas formas el resultado es el mismo, la diferencia la hace el tiempo en que se ejecuta el programa.

Nota: En las condiciones de if se hace uso de los operadores de relaciones para comparar.Y para en la primera condición también se incluyen los operadores lógicos para unir dos condiciones, en ese caso ambas deben cumplirse. La lectura de esa linea es: "Si var es menor que 0 y el resto de la división de var entre 2 es igual a 0".

Salida:
Ingresando -10;

Ingresando -17:

Ingresando 15:

No hay comentarios:

Publicar un comentario