Professional Documents
Culture Documents
Una decisión se especifica en una expresión lógica de la misma forma en que una
operación de cálculo se especifica en una expresión numérica.
Por ejemplo:
Suponga que tiene dos variables numéricas, denominadas A y B, que tienen valores
diferentes, y suponga que desea imprimir el valor de la mas grande. Si A es mayor que
B, debe imprimir el valor de A; pero, por otro lado, si B es mayor que A, debe
imprimirse el valor de B. La elección de que alternativa tomar depende de la decisión
de si la variable A es o no mayor que B. Esta estructura se representa mediante el
diagrama siguiente:
Simples
Dobles
Anidadas
1 <?php
5
6 echo "La condición se cumple";
8 }
11
13
14 ?>
1 <?php
8 }else{
10 }
11
13
15
16 ?>
Estructuras de decisión anidadas
Este tipo de estructuras nos permite tomar mas de un camino para una condicion y
esta estructura puede ser expresada de dos formas, anidando estructuras, o con el
uso de la palabra elseif, lo que podria traducirse como, sino, si…
1 <?php
8 }else{
11 }else{
13 }
14 }
15
17
19
20 ?>
SENTENCIA SI ENTONCES
Las sentencias condicionales constituyen, junto con los bucles, los pilares de la
programación estructurada, y su uso es una evolución de una sentencia en lenguaje
ensamblador que ejecutaba la siguiente línea o no en función del valor de una
condición.
Lanzamiento de errores
Si bien es un problema que este anidamiento puede llegar a ser muy grande, la
principal razón para utilizar el lanzamiento de errores es que con el tipo de estructura
anterior se pierde la noción del camino principal, y cuesta mucho más encontrar las
sentencias de ejecución normal, (en este caso Cuerpo), por la presencia de las
condiciones de error que entorpecen la legibilidad.
El código es ejecutado normalmente hasta que ocurre una excepción, en este caso
"salta" al manejo de errores adecuado; es decir las sentencias pueden o no ejecutarse,
en función de si previamente se haya lanzado un error o no. En algunos casos puede
darse que exista código que debe ejecutarse al final, independientemente de si se
haya lanzado o no un error (en nuestro caso podría ser la operación de cerrar el
archivo para que otros puedan acceder a él), para lo cual también hay sentencias
especiales.
A su vez los procedimientos que lanzan excepciones deben contener alguna línea con
el siguiente código:
El código que llama a una subrutina que puede lanzar un error, tiene dos alternativas:
o la trata él mismo (con la estructura anterior) o la "LANZA" a la subrutina superior que
la invocó. Algunas veces no es obligatorio tratar estos errores.
Si «condición» Entonces
«código»
FinSi
La condición es una expresión lógica o relacional que da como resultado un valor
lógico Verdadero o Falso. El arte de usar el Si-Entonces es la correcta construcción de
la condición, la Némesis de los alumnos.
Supongamos que en una tienda se aplica un 15% de descuento si el cliente lleva más
de 3 productos. El si del enunciado nos lleva al Si-Entonces del código:
La condición puede ser más o menos compleja. Supongamos que la tienda se pone
más exigente para el descuento, y ahora se requiere no sólo que lleve más de 3
productos, sino que el precio sea mayor o igual a $5.000 y que el día sea lunes.
El Si-Entonces tiene una cláusula opcional Sino que sirve para poner código que se
ejecuta en caso que la condición evalúa a Falso.
Si «condición» Entonces
«código si condición evalúa a Verdadero»
Sino
«código si condición evalúa a Falso»
FinSi
Volvamos a la tienda y su promoción. Si el cliente lleva más de 3 artículos se le regala
un osito de peluche, caso contrario se le regala un loli.
El Sino es opcional.