Control de Flujo
## Objetivos de Aprendizaje
- Dominar las declaraciones if, else if, else
- Comprender las declaraciones switch
- Aprender los bucles for, foreach, while, do-while
- Usar break, continue y la expresión match
## Declaración if
### if Básico
```php
= 18) {
echo "Adult";
}
?>
```
### if-else
```php
= 18) {
echo "Adult";
} else {
echo "Minor";
}
?>
```
### if-else if-else
```php
= 90) {
$grade = "A";
} elseif ($score >= 80) {
$grade = "B";
} elseif ($score >= 70) {
$grade = "C";
} elseif ($score >= 60) {
$grade = "D";
} else {
$grade = "F";
}
echo "Grade: " . $grade;
?>
```
### Sintaxis Alternativa
```php
= 18):
echo "Adult";
elseif ($age >= 13):
echo "Teenager";
else:
echo "Child";
endif;
?>
```
## Operador Ternario
```php
= 18) ? "Adult" : "Minor";
echo $status; // Adult
// With else-if (avoid nesting)
$grade = ($score >= 90) ? "A"
: ($score >= 80) ? "B"
: ($score >= 70) ? "C"
: "F";
?>
```
### Fusión de Null como Alternativa al Ternario
```php
```
## Declaración switch
### switch Básico
```php
```
### switch con Múltiples Valores
```php
```
### switch sin break (Caída a través)
```php
```
### Sintaxis Alternativa de Switch
```php
```
## Expresión match (PHP 8)
### match Básico
```php
"Monday",
2 => "Tuesday",
3 => "Wednesday",
4 => "Thursday",
5 => "Friday",
6 => "Saturday",
7 => "Sunday",
};
echo $dayName;
?>
```
### Múltiples Valores
```php
31,
4, 6, 9, 11 => 30,
2 => 28,
};
echo "Days: " . $days;
?>
```
### Cláusula Default
```php
"A",
80, 81, 82, 83, 84, 85, 86, 87, 88, 89 => "B",
70, 71, 72, 73, 74, 75, 76, 77, 78, 79 => "C",
default => "Need improvement",
};
?>
```
### match vs switch
```php
"Match!", // Won't match
"10" => "Exact match!", // This matches
};
?>
```
## Bucle for
### for Básico
```php
```
### Múltiples Variables de Bucle
```php
```
### Contando hacia Atrás
```php
0; $i--) {
echo $i . "\n"; // 5, 4, 3, 2, 1
}
?>
```
### Avanzando por N
```php
```
## Bucle foreach
### Arreglos Indexados
```php
```
### Con Índice
```php
$color) {
echo "$index: $color\n";
}
// 0: red
// 1: green
// 2: blue
?>
```
### Arreglos Asociativos
```php
"Alice",
"age" => 25,
"city" => "Paris"
];
foreach ($person as $key => $value) {
echo "$key: $value\n";
}
?>
```
### Por Referencia
```php
```
## Bucle while
### while Básico
```php
```
### while con Condición Primero
```php
```
## Bucle do-while
### Ejecuta al Menos una Vez
```php
```
### Ejemplo de Menú
```php
```
## break y continue
### break - Salir del Bucle
```php
```
### break con Nivel
```php
4) {
$found = true;
break 2; // Break outer loop
}
}
}
?>
```
### continue - Saltar Iteración
```php
```
### continue con Nivel
```php
```
## Bucles Anidados
### Anidamiento Básico
```php
```
### Patrón de Triángulo
```php
```
## Patrones Comunes
### Sumar 1 a N
```php
```
### Encontrar en Arreglo
```php
```
### Contar Coincidencias
```php
```
### FizzBuzz
```php
```
## Resumen
- if/elseif/else para lógica condicional
- switch para múltiples valores discretos (usa comparación laxa)
- match (PHP 8+) para comparación estricta, devuelve valores
- for para iteraciones conocidas
- foreach para arreglos (por valor o referencia)
- while para iteración basada en condición
- do-while para iteración de al menos una vez
- break sale del bucle; continue salta iteración
- Especifica el nivel de break/continue para bucles anidados
Comments
Comments powered by Giscus
To enable comments, add your Giscus embed code here.
Learn more about Giscus →