Bandera
En informática, una bandera es un valor que actúa como señal para una función o proceso. El valor de la bandera se usa para determinar el siguiente paso de un programa. Las banderas suelen ser banderas binarias, que contienen un valor booleano (verdadero o falso). Sin embargo, no todas las banderas son binarias, lo que significa que pueden almacenar un rango de valores.
Puede imaginar una bandera binaria como una pequeña bandera roja que permanece tendida cuando es falsa, pero se levanta cuando es verdadera. Una bandera levantada le indica a un programa: "Detente: haz algo diferente". Un ejemplo común de una bandera en programación es una variable en un bucle while. El bucle de PHP que aparece a continuación iterará hasta que $flag se establezca en true.
$flag = false;
$i = 1;
while (!$flag) // stop when $flag is true
{
echo "$i, ";
$i++; // increment $i
if ($i > 100) $flag = true;
}
El código anterior imprimirá números (1, 2, 3...) hasta 100. Luego, el bucle se interrumpirá porque $flag se establecerá en true. Usar una bandera en este contexto es eficaz, pero innecesario. En su lugar, la condición del bucle while podría haber sido while ($i < 101) en vez de while (!$flag). Esto produciría el mismo resultado y eliminaría la necesidad de la variable $flag. Los programas escritos de manera eficiente rara vez necesitan banderas explícitas, ya que a menudo se puede usar una variable existente dentro de una función como bandera.
Banderas no binarias
Las banderas no binarias usan varios bits y pueden almacenar más que "sí o no" o "verdadero o falso". Estos tipos de banderas requieren más de un bit, pero no necesariamente un byte completo. Por ejemplo, dos bits pueden producir cuatro opciones posibles.
- 00 = opción A
- 01 = opción B
- 10 = opción C
- 11 = opción D
Puede imaginar una bandera no binaria como una bandera con varios colores. Un programa puede comprobar 1) si la bandera de varios bits está establecida y 2) qué valor contiene. Según el valor (o "color") de la bandera, el programa continuará en la dirección correspondiente.
Pon a prueba tu conocimiento