Documentos de Académico
Documentos de Profesional
Documentos de Cultura
htm
Estructura de bifurcación
La primera de las estructuras, el if, es la que me permite tomar una decisión sobre si
ejecutar o no un bloque de código dependiendo de una condición:
if(condición) {
sentencia1;
sentencia2;
sentencia3;
...
sentenciaN;
}
Si se cumple condición entonces se ejecutarán todas las sentencias que se encuentren entre
las llaves (que son obligatorias). En caso de que no se cumpla, entonces se seguiran
ejecutando las sentencias que se encuentren por debajo de la última llave del if.
Una condición puede solamente ser Verdadera, se cumple, o Falsa, no se cumple (Ver
operadores de comparación).
Sin embargo, también se puede obligar a ejecutar un bloque de código si no se cumple la
condición:
if(condición) {
sentencia1;
sentencia2;
...
sentenciaN;
} else {
sentenciaN+1;
sentenciaN+2;
...
sentenciaM;
}
En este caso, si se cumple la condición se ejecutan las sentencias que van desde el 1 hasta
N, y si no se cumple, las que van desde N+1 hasta M. Para ello se utilizó la palabra else
(sino) que nos permite ejecutar algo si la condición es falsa. Siempre se ejecutará un bloque u
otro pero nunca ambos.
Cuando se anidan un if, o sea, poner muchos if uno dentro de otro, el código se hace
bastante ilegible. Para ello existe otra palabra reservada (o conjunción), elseif, que permite
juntar un else con un if y así dejar el código más ordenado:
if(condición) {
sentencia1;
sentencia2;
...
sentenciaN;
} elseif(condicion2) {
sentenciaN+1;
sentenciaN+2;
...
sentenciaM;
} else {
sentenciaM+1;
sentenciaM+2;
...
sentenciaJ;
}
En este caso, solo se ejecutará uno de los tres bloques de código (1 a N, N+1 a M o M+1 a J).
Ejemplos
Ejemplo 1: Leer una temperatura desde el usuario y decir "Hace Calor" si la temperatura es
mayor que 30 o "Hace Frio" en otro caso.
Ejemplo 2: Leer una temperatura desde el usuario y decir "Hace Calor" si la temperatura es
mayor que 30, si esta entre 20 y 30 mostrar "Esta perfecto" o "Hace Frio" en otro caso.
mayor que 30, si esta entre 20 y 30 mostrar "Esta perfecto" o "Hace Frio" en otro caso.
Estructura while
Esta estructura sirve para iterar sobre una porción de código mientras se cumpla una
condición dada:
while(condición) {
sentencia1;
sentencia2;
...
sentenciaN;
}
$x = 1;
while ($x <= 10) {
echo "$x por 7 = ", $x * 7, "\n";
$x = $x + 1;
}
Ejemplo 2: Leer varias líneas por teclado hasta que se ingrese una línea que contenga
solamente un punto (.). Cada línea leída se debe repetir en pantalla, pero enumerandolas
desde 1 en adelante.
$ingreso = fgets(STDIN);
$ingreso = chop($ingreso);
$x = 1;
while($ingreso != '.') {
echo "$x. $ingreso\n";
$x = $x + 1;
$ingreso = fgets(STDIN);
$ingreso = chop($ingreso);
}
Estructura foreach
Esta estructura se utiliza para recorrer un arreglo.
Existen dos estilos de foreach. En el primero, se irán tomando de a uno los elementos del
arreglo indicado, y se irán colocando en la variable indicada luego del as.
La sintaxis sería:
foreach($arreglo as $valor) {
sentencia1;
sentencia2;
...
sentenciaN;
}
Aquí se ejecutarán las sentencias 1 a la N tantas veces como elementos haya en el arreglo.
Para cada iteración existirá una variable llamada $valor que tendrá un valor de la lista.
La segunda forma nos permite no solo obtener el valor, sino también la clave asociada con
dicho valor.
Para ello utilizaremos la sintaxis:
sentencia2;
...
sentenciaN;
}
De esta forma para cada ciclo se dispondrá de una variable $clave que tiene la clave del
elemento que se este procesando. Además, en $valor estará el contenido del elemento
actual. Por lo tanto, al saber la clave, es posible modificar el arreglo original.
Ejemplos
Ejemplo 1: Mostrar todos los elementos de una lista.
Ejemplo 2: Desde una lista con números calcular la suma de todos ellos.
Ejercicios
1. ¿Cual es la diferencia entre un if y un while?
2. ¿Que es más práctico para recorrer una lista? ¿un while o un foreach?
3. Hacer un programa que dada una lista con numeros, los muestre y diga si cada número
es PAR o IMPAR.
NOTA: un número es PAR si al dividirlo por 2 el modulo da 0 ($numero % 2 == 0)
4. Hacer un programa que dada una lista con numeros, calcular la sumatoria y el
promedio de todos ellos.
5. Hacer un programa que muestre las tablas de multiplicar del 1 al 10 (usando
solamente dos ciclos while)