Flaga
W informatyce flaga to wartość, która działa jako sygnał dla funkcji lub procesu. Wartość flagi służy do określenia następnego kroku programu. Flagi często są binarne i zawierają wartość logiczną (prawda lub fałsz). Jednak nie wszystkie flagi są binarne, co oznacza, że mogą przechowywać zakres wartości.
Flagę binarną można sobie wyobrazić jako małą czerwoną flagę, która leży płasko, gdy ma wartość fałsz, ale podnosi się, gdy ma wartość prawda. Podniesiona flaga mówi programowi: „Zatrzymaj się — zrób coś innego”. Typowym przykładem flagi w programowaniu jest zmienna w pętli while. Poniższa pętla PHP będzie wykonywać iteracje, dopóki zmienna $flag nie otrzyma wartości true.
$flag = false;
$i = 1;
while (!$flag) // stop when $flag is true
{
echo "$i, ";
$i++; // increment $i
if ($i > 100) $flag = true;
}
Powyższy kod wyświetli liczby (1, 2, 3...) aż do 100. Następnie pętla zostanie przerwana, ponieważ zmienna $flag otrzyma wartość true. Użycie flagi w tym kontekście jest skuteczne, ale niepotrzebne. Zamiast tego warunek pętli while mógłby mieć postać while ($i < 101), a nie while (!$flag). Dałoby to ten sam wynik i wyeliminowałoby potrzebę używania zmiennej $flag. Wydajnie napisane programy rzadko potrzebują jawnych flag, ponieważ istniejąca zmienna w funkcji często może pełnić funkcję flagi.
Flagi niebinarne
Flagi niebinarne używają wielu bitów i mogą przechowywać więcej informacji niż „tak lub nie” albo „prawda lub fałsz”. Tego typu flagi wymagają więcej niż jednego bitu, ale niekoniecznie całego bajtu. Na przykład dwa bity mogą tworzyć cztery możliwe opcje.
- 00 = opcja A
- 01 = opcja B
- 10 = opcja C
- 11 = opcja D
Flagę niebinarną można sobie wyobrazić jako flagę mającą wiele kolorów. Program może sprawdzić, czy 1) flaga wielobitowa jest ustawiona oraz 2) jaką wartość zawiera. W zależności od wartości (lub „koloru”) flagi program będzie kontynuować działanie w odpowiednim kierunku.
Sprawdź swoją wiedzę