|
|
| Contenidos > 2.4.1
Alternativa doble en doble |
|
Alternativa
doble en doble
En lenguaje C, para anidar una alternativa doble en otra, 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:
Introduzca nota (real): 7.5
APTO
|
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.
|
|
|
|
|