Serwisy partnerskie:
Close icon
Serwisy partnerskie

Sprytne porady i sztuczki cyklu Ekscytacje Maxa dotyczące kodowania (4)

Article Image
W poprzednim odcinku (EdW 12/2023) obiecałem, że w tym miesiącu zastanowimy się, w jaki sposób operatory << i >> wykonują swoją magię. Niestety, będziemy musieli odłożyć to na później, ponieważ czytelnik David R. Humrich, mieszkający w Perth (Australia), wysłał mi wiadomość z dość interesującym pytaniem dotyczącym użycia nawiasów klamrowych { }.

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 ():

void MyFunction ()
{
 // Załóżmy, że ten komentarz jest stwierdzeniem
 // Załóżmy, że ten komentarz jest stwierdzeniem
 // Załóżmy, że ten komentarz jest stwierdzeniem
}

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:

if (done == true) fred = fred + 1;

W języku C nie ma znaczenia, ile odstępów między znakami użyjemy:

 if (done == true)
  fred = fred + 1;

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:

 if (done == true) fred = fred + 1;
 if (done == true) jane = jane – 1;
 if (done == true) bert = fred + jane;

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:
 if (done == true) // Tożsame z powyższym

 {
  fred = fred + 1;
  jane = jane – 1;
  bert = fred + jane;
 }

W tym przypadku instrukcja złożona jest bardziej efektywna i sprawia, że staje się czytelniejsze, co chcemy osiągnąć.

Aby przeczytać ten artykuł kup e-wydanie
Kup teraz
Firma:
Tematyka materiału: PROGRAMOWANIE ARDUINO, C/C++, MyFunction (), if (), for ()
AUTOR
Źródło
Elektronika dla Wszystkich styczeń 2024
Udostępnij
Zobacz wszystkie quizy
Quiz weekendowy
Edukacja
1/10 Jak działa rezystor LDR?
Oceń najnowsze wydanie EdW
Wypełnij ankietę i odbierz prezent
W tym numerze znajdziesz źródłową wersję artykułu publikowanego obok
Elektronika dla Wszystkich
styczeń 2024
Elektronika dla Wszystkich
Przejrzyj i kup
UK Logo
Elektronika dla Wszystkich
Zapisując się na nasz newsletter możesz otrzymać GRATIS
najnowsze e-wydanie magazynu "Elektronika dla Wszystkich"