Espacios de nombres
Variantes
Acciones

Sentencia if

De cppreference.com
< c‎ | language

Ejecuta el código condicionalmente.

Se usa donde el código necesita ser ejecutado sólo si alguna condición es verdadera.

Contenido

[editar] Sintaxis

if ( expresión ) sentencia_verdadera (1)
if ( expresión ) sentencia_verdadera else sentencia_falsa (2)

[editar] Explicación

La expresión debe de ser una de cualquier tipo escalar.

Si la expresión hace una comparación distinta al número entero cero, se ejecuta sentencia_verdadera.

En la forma (2), si la expresión es igual al cero entero, se ejecuta sentencia_falsa.

Al igual que con todas las demás sentencias de selección e iteración, toda la expresión if tiene su propio alcance de bloque:

enum {a, b};
int different(void)
{
    if (sizeof(enum {b, a}) != sizeof(int))
        return a; // a == 1
    return b; // b == 0 en C89, b == 1 en C99
}
(desde C99)

[editar] Observaciones

El else siempre está asociado con el anterior más cercano if (en otras palabras, si sentencia_verdadera es también una sentencia if, entonces esa sentencia if interna debe contener también una parte else):

int j = 1;
if (i > 1)
   if(j > 2)
       printf("%d > 1 and %d > 2\n", i, j);
    else // este else es parte de if(j>2), no de if(i>1) 
       printf("%d > 1 and %d <= 2\n", i, j);

Si se introduce sentencia_verdadera a través de un goto, no se ejecuta sentencia_falsa.

[editar] Términos clave

if, else

[editar] Ejemplo

#include <stdio.h>
 
int main(void)
{
    int i = 2;
    if (i > 2) {
        printf("lo primero es verdadero\n");
    } else {
        printf("lo primero es falso\n");
    }
 
    i = 3;
    if (i == 3) printf("i == 3\n");
 
    if (i != 3) printf("i != 3 es verdadero\n");
    else        printf("i != 3 es falso\n");
}

Salida:

lo primero es verdadero
i == 3
i != 3 es falso

[editar] Referencias

  • Standard C11 (ISO/IEC 9899:2011):
  • 6.8.4.1 The if statement (p: 148-149)
  • Standard C99 (ISO/IEC 9899:1999):
  • 6.8.4.1 The if statement (p: 133-134)
  • Standard C89/C90 (ISO/IEC 9899:1990):
  • 3.6.4.1 The if statement

[editar] Véase también

Documentación de C++ para sentencia if