|
CarlosPes.com
> Curso
de Lenguaje C
> Anidamiento if else Dentro
de if else en Lenguaje C |
|
Anidamiento if else Dentro de
if else en
Lenguaje C
|
|
|
|
|
¿Como anidar
instrucción if else dentro de otro if else en
C?
|
|
En
lenguaje C, para anidar una instrucción if else en
otra (también if
else), se utiliza
la sintaxis: |
|
if (
<expresión_lógica_1> )
{
/* Inicio del anidamiento */
if (
<expresión_lógica_2> )
{
<bloque_de_instrucciones_1>
}
else
{
<bloque_de_instrucciones_2>
}
/* Fin del anidamiento */
}
else
{
<bloque_de_instrucciones_3>
}
|
|
|
O
también: |
|
if (
<expresión_lógica_1> )
{
<bloque_de_instrucciones_1>
{
else
{
/* Inicio del anidamiento */
if (
<expresión_lógica_2> )
{
<bloque_de_instrucciones_2>
}
else
{
<bloque_de_instrucciones_3>
}
/* Fin del anidamiento */
} |
|
|
Ejemplo: Se quiere escribir un programa que:
1º) Pida por teclado la nota (real) de una asignatura.
2º) Muestre por pantalla:
- "APTO",
en el caso de que la nota sea mayor o igual que 5 y menor o
igual que 10.
- "NO
APTO", en el caso de que la nota sea mayor o igual que 0 y menor
que 5.
- "ERROR:
Nota incorrecta.", en el caso de que la nota sea menor que 0 o
mayor que 10.
En
pantalla se podría ver: |
|
Introduzca nota (real): 7.5
APTO |
|
|
O
por ejemplo: |
|
Introduzca nota (real): 12.2
ERROR: Nota incorrecta. |
|
|
Una
solución al problema es: |
|
#include <stdio.h>
int main()
{
float nota;
printf( "\n Introduzca nota
(real): " );
scanf( "%f", ¬a );
if ( nota >= 5 && nota
<= 10 )
printf(
"\n APTO" );
else
/* Inicio del
anidamiento */
if ( nota >=
0 && nota < 5 )
printf( "\n NO APTO" );
else
printf( "\n ERROR: Nota incorrecta." );
/* Fin del
anidamiento */
return 0;
} |
|
|
Fíjese
que, en este caso, se puede prescindir de los caracteres abrir
llave ({) y cerrar llave (}) de la sintaxis, ya que, los bloques
de
instrucciones sólo contienen una instrucción.
Como se puede observar, el anidamiento de instrucciones alternativas
permite ir descartando valores hasta llegar al bloque de instrucciones
que se debe ejecutar. |
|