Sentencia if
Ejecuta el código condicionalmente.
Se usa donde el código necesita ser ejecutado sólo si alguna condición es verdadera.
Sintaxis
if ( expresión ) sentencia_verdadera
|
(1) | ||||||||
if ( expresión ) sentencia_verdadera else sentencia_falsa
|
(2) | ||||||||
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) |
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.
Términos clave
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
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
Véase también
Documentación de C++ para sentencia if
|