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

50 lines
2.0 KiB
Plaintext
Raw Normal View History

\b;Bloki
Do zgrupowania razem kilku instrukcji mo<6D>na u<>y<EFBFBD> nawias<61>w klamrowych \c;{ }\n; i utworzy<7A> z nich jeden blok, na przyk<79>ad:
\c;
\s; {
\s; float t;
\s; t = a;
\s; a = b;
\s; b = t; // zamienia zawarto<74>ci a i b
\s; }
\n;
Ka<EFBFBD>da instrukcja w bloku zako<6B>czona jest \l;<3B>rednikiem\u cbot\term; ale sam blok ju<6A> nie.
W celu zilustrowania u<>ycia blok<6F>w w programie rozwa<77>my nast<73>puj<75>cy przyk<79>ad z instrukcj<63> \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<EFBFBD>li \l;warunek\u cbot\cond; jest prawdziwy, wykonywane s<> instrukcje 1, 2 i 3. Je<4A>li nie, tylko instrukcja 1 jest pomijana, instrukcje 2 i 3 s<> wykonywane. Fakt, <20>e instrukcja 2 jest na tym samym poziomie co instrukcja 1 nie ma znaczenia.
Je<EFBFBD>li instrukcje 1 i 2 maj<61> by<62> wykonywane tylko gdy warunek jest prawdziwy, nale<6C>y u<>y<EFBFBD> nawias<61>w klamrowych do z<><7A>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<6F> by<62> niezb<7A>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<6B>re maj<61> by<62> wykonywane tylko w przypadku prawdziwo<77>ci warunku b<>d<EFBFBD> powtarzane wielokrotnie.
Bloki mo<6D>na umieszcza<7A> wewn<77>trz innych blok<6F>w dowoln<6C> liczb<7A> razy. Oto przyk<79>ad dwupoziomowego zagnie<69>d<EFBFBD>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<77> czytelno<6E><6F> programu, najlepiej jest wyr<79>wna<6E> klamr<6D> otwieraj<61>c<EFBFBD>\c;{\n; z zamykaj<61>c<EFBFBD> \c;}\n;, chocia<69> nie jest to obowi<77>zkowe. Nast<73>puj<75>cy przyk<79>ad zajmuje mniej miejsca i jest r<>wnowa<77>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<69>
\l;Instrukcje\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;.