colobot-data/help/P/cbot/bloc.txt.bak

50 lines
2.0 KiB
Plaintext

\b;Bloki
Do zgrupowania razem kilku instrukcji można użyć nawiasów klamrowych \c;{ }\n; i utworzyć z nich jeden blok, na przykład:
\c;
\s; {
\s; float t;
\s; t = a;
\s; a = b;
\s; b = t; // zamienia zawartości a i b
\s; }
\n;
Każda instrukcja w bloku zakończona jest \l;średnikiem\u cbot\term; ale sam blok już nie.
W celu zilustrowania użycia bloków w programie rozważmy następujący przykład z instrukcją \c;\l;if\u cbot\if;\n;:
\c;
\s; if ( a < b )
\s; \n;instrukcja 1\c;;
\s; \n;instrukcja 2\c;;
\s; \n;instrukcja 3\c;;
\n;
Jeśli \l;warunek\u cbot\cond; jest prawdziwy, wykonywane są instrukcje 1, 2 i 3. Jeśli nie, tylko instrukcja 1 jest pomijana, instrukcje 2 i 3 są wykonywane. Fakt, że instrukcja 2 jest na tym samym poziomie co instrukcja 1 nie ma znaczenia.
Jeśli instrukcje 1 i 2 mają być wykonywane tylko gdy warunek jest prawdziwy, należy użyć nawiasów klamrowych do złączenie ich w jeden blok:
\c;
\s; if ( a < b )
\s; {
\s; \n;instrukcja 1\c;;
\s; \n;instrukcja 2\c;;
\s; }
\s; \n;instrukcja 3\c;;
\n;
Bloki mogą być niezbędne w przypadku instrukcji \c;\l;if\u cbot\if;\n;, \c;\l;while\u cbot\while;\n; oraz \c;\l;for\u cbot\for;\n;, w celu zgrupowania instrukcji, które mają być wykonywane tylko w przypadku prawdziwości warunku bądź powtarzane wielokrotnie.
Bloki można umieszczać wewnątrz innych bloków dowolną liczbę razy. Oto przykład dwupoziomowego zagnieżdżenia:
\c;
\s; if ( a > b )
\s; {
\s; int i = 0;
\s; while ( i < 18 )
\s; {
\s; move(10);
\s; turn(5);
\s; i = i+1;
\s; }
\s; }
\n;
Aby poprawić czytelność programu, najlepiej jest wyrównać klamrę otwierającą\c;{\n; z zamykającą \c;}\n;, chociaż nie jest to obowiązkowe. Następujący przykład zajmuje mniej miejsca i jest równoważny poprzedniemu, nie jest jednak polecane używanie takiego stylu:
\c;
\s; if(a>b) { int i=0; while(i<18) {
\s; move(10);turn(5);i=i+1; }}
\n;
\t;Zobacz również
\l;Instrukcje\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;.