If then else en C. Estructura condicional decisión o bifurcación. Sintaxis. Ejemplos and, or, igual que (CU00529F)

Resumen: Entrega nº29 del tutorial "Curso básico de programación en lenguaje C desde cero".
Codificación aprenderaprogramar.com: CU00529F

 

 

CONDICIONALES IF THEN ELSE EN C

La sintaxis a emplear con C es muy similar a la que vimos al hablar de pseudocódigo, con la sustitución del Si por If, del Entonces por un símbolo de apertura de llave, { , del SiNo por else y del Finsi por un símbolo de cierre de llaves, }. La única salvedad a tener en cuenta es que C permite además de la escritura en bloques la escritura en línea sin uso de llaves.

logo lenguaje programacion C

 

Sintaxis en bloque:

if (condición) {

Instrucción 1;

Instrucción 2;

.

.

.

Instrucción n;

}

else {

Instrucción A;

Instrucción B;

.

.

.

Instrucción Z;

}

 

Sintaxis en línea:

If (condición)  Instrucción 1;

else Instrucción A;

 

 

A pesar de que la sintaxis en línea está permitida y es legal, recomendamos usar siempre las llaves porque genera un código más legible y más fácil de mantener, quedando bien delimitada la intención del programador.

La instrucción if es anidable dentro de sí misma, siendo siempre preferible el formato de bloque (usando llaves) cuando se vayan a generar anidamientos. Ten en cuenta que la claridad y legibilidad del código forman parte de lo que se denominan “buenas prácticas de programación” y suelen ser valoradas positivamente. Aunque no afecten a la ejecución de los programas, sí afectan a su mantenimiento.

Ejemplo:

    if (A>7 && B<5) {

    printf("A es mayor que 7 y B menor que 5\n");

    }

 

También válido es:

if (A>7 && B<5) printf("A es mayor que 7 y B menor que 5\n");

 

Si introducimos una cláusula else el modelo es:

    if (A>7 && B<5) {

        printf("A es mayor que 7 y B menor que 5\n");

    } else {

        printf("A no es mayor que 7 ó B no es menor que 5\n");

    }

 

También válido:

    if (A>7 && B<5) printf("A es mayor que 7 y B menor que 5\n");

    else printf("A no es mayor que 7 ó B no es menor que 5\n");

 

 

Una cuestión a tener en cuenta es que cuando la condición indicada por un if en bloque no se cumple, se produce el salto a la siguiente instrucción inmediatamente posterior a la llave de cierre. Igualmente, cuando la condición indicada por un if en línea no se cumple, se produce el salto a la siguiente instrucción incluso si esta se encuentra en la misma línea que el if. Veámoslo con un ejemplo. Ejecuta estas dos versiones de código:

 

Versión 1:

#include <stdio.h>
#include <stdlib.h>


int main() {
    int a;
    a=3;
    if (a==5 ) {
        printf("Se cumple que a vale 5\n");
    }
    a=25;
    printf("El valor actual de a es %d\n", a);
    return 0; //Ejemplo aprenderaprogramar.com
}

 

Versión 2:

#include <stdio.h>

#include <stdlib.h>

 

int main() {

    int a;

    a=3;

    if (a==5 ) printf("Se cumple que a vale 5\n"); a=25;

    printf("El valor actual de a es %d\n", a);

    return 0; //Ejemplo aprenderaprogramar.com

}

 

 

 

En el caso 1 y en el caso 2 el resultado es que se muestra en pantalla es el mismo: "El valor actual de a es 25". En algún momento se podría pensar que en la versión 2 el valor de a seguiría siendo 3 al no cumplirse la condición del if, sin embargo al no existir llaves delimitadoras el compilador trata la siguiente instrucción a continuación del if como si estuviera en una línea diferente. En un if sin llaves delimitadoras la única instrucción que se ve afectada por el condicional es la instrucción inmediata al if, en este ejemplo printf("Se cumple que a vale 5\n");. La mejor forma de dejar claro qué es lo que queremos hacer es utilizar las llaves de apertura y cierre, con lo cual evitamos posibles confusiones.

 

 

EJERCICIO

Crea un programa que declare tres variables de tipo entero con valores A = 5, B = 3, C = -12 y muestre si se cumplen o no las siguientes condiciones usando if else:

a) A > 3                                 b) A > C                                 c) B != C                                 d) A == 3

e) A * B == 15                       f) C / B < A                             g) C / B == -10                  

h) A + B + C == 5

i) (A+B == 8) && (A-B == 2)                                       

j) (A+B == 8) || (A-B == 6)

o) A > 3 && B > 3 && C < 3                        

 

Ejemplo. Hay que evaluar si A es mayor que tres. Si se cumple esa condición debe mostrarse el mensaje “A es mayor que 3” y en caso contrario debe mostrarse el mensaje “A no es mayor que 3”. Proceder de la misma manera con el resto de condiciones.

 

Para comprobar si tus respuestas son correctas puedes consultar en los foros aprenderaprogramar.com.

 

 

 

 

 

 

Para acceder a la información general sobre este curso y al listado completo de entregas pulsa en este link:  Ver curso completo.

Para  hacer un comentario o consulta utiliza los foros aprenderaprogramar.com, abiertos a cualquier persona independientemente de su nivel de conocimiento.

¿Puedo yo aprender?

Seas o no del área informática, si quieres aprender a programar te ofrecemos una solución guiada y personalizada: realizar un curso tutorizado on-line. Con este tipo de curso, podrás aprender a programar de forma ágil y amena.

Acceder a detalles y precios de los cursos tutorizados on-line

Política sobre cookies

Utilizamos cookies propias y de terceros para ofrecerte una mejor experiencia y servicio, de acuerdo a tus hábitos de navegación.

Si continúas navegando, consideramos que aceptas su uso. Puedes obtener más información en nuestra Política de Cookies.

En Facebook!

Ahora puedes seguirnos en Facebook. Noticias, novedades y mucho más ¡Te esperamos!

RANKING APR2+

Ranking de lenguajes y entornos de programación aprenderaprogramar.com
 

MARZO - ABRIL 2017

1. Java / J2EE
2. Entornos Oracle
3. JavaScript, jQuery
4. .NET, C#
5. Entornos SQL Server
6. HTML, CSS
7. Php, MySql
8. Android, iOS


Acceder a detalles sobre el ranking de programación aprenderaprogramar.com

FOROS APR2+

Pregunta, responde, consulta, lee, intercambia...

Participa!!! Entra en los foros aprenderaprogramar.com.

             Copyright 2006-2017 aprenderaprogramar.com                La web abierta a cualquier persona interesada en la programación