Zanim zajmiemy się pytaniem Davida, przypomnijmy, że { } może być używane do tworzenia tak zwanych „instrukcji złożonych”. Jest to mechanizm używany przez język programowania C do grupowania wielu instrukcji w coś, co można uznać za pojedynczą instrukcję.
Rozważmy na przykład, co się stanie, gdy zdefiniujemy funkcję o nazwie MyFunction ():
Kiedy wywołujemy tę funkcję z innego miejsca w programie, komputer „widzi” wszystkie instrukcje w funkcji jako tworzące jedną logiczną całość.
To samo dzieje się, gdy używamy { } wraz z instrukcją sterującą, taką jak if (). Po pierwsze, załóżmy, że jeśli warunek jest prawdziwy, chcemy wykonać tylko jedną akcję, w którym to przypadku moglibyśmy napisać to w następujący sposób:
Zakładamy oczywiście, że zmienne done i fred zostały zadeklarowane w innym miejscu programu. Załóżmy teraz, że chcemy wykonać kilka akcji, jeśli nasz warunek jest prawdziwy. Można to zrobić w następujący sposób:
Oprócz tego, że wygląda to głupio, jest to nieefektywne, ponieważ wykonujemy ten sam test trzy razy. Ten przykład wzywa nas do użycia instrukcji złożonej w następujący sposób:
W tym przypadku złożone oświadczenie jest zarówno bardziej wydajne, jak i jaśniejsze, co próbujemy osiągnąć.