colobot-data/help/P/cbot/IF.TXT.bak

41 lines
1.8 KiB
Plaintext

\b;Instrukcje \c;if\n; i \c;else\n;
Używając instrukcji \c;if() {}\n; można uzależnić wykonanie zbioru instrukcji od spełnienia określonego warunku. Warunek należy zapisać w nawiasach \c;()\n;, a instrukcje w nawiasach klamrowych \c;{}\n;.
\b;Podstawowe użycie
Oto konkretny przykład: Robot będzie strzelał dopiero wtedy, gdy cel będzie bliżej niż 40 metrów:
\c;
\s; item = \l;radar\u cbot\radar;(AlienAnt);
\s; if (\l;distance\u cbot\dist;(position, item.position) < 40)
\s; {
\s; fire(1);
\s; }
\n;
Można też sprawdzić czy obiekt istnieje w ogóle. Jeśli instrukcja \c;\l;radar\u cbot\radar;();\n; nie znajdzie żądanego obiektu, zwraca wartość \c;null\n;. Można więc sprawdzić czy obiekt istnieje, warunkiem \c;(item != null)\n; lub czy nie istnieje \c;(item == null)\n;. Dwa znaki równości \c;==\n; sprawdzają równość, znak równości poprzedzony wykrzyknikiem \c;!=\n; sprawdza nierówność. Oto program testowy, który będzie ładował \l;ogniwa elektryczne\u object\power; tylko wtedy, gdy znajdzie \l;stację energetyczną\u object\station;:
\c;
\s; item = \l;radar\u cbot\radar;(PowerStation);
\s; if (item != null)
\s; {
\s; \l;goto\u cbot\goto;(item.position);
\s; \l;wait\u cbot\wait;(5);
\s; }
\n;
\b;Dla specjalistów
Składnia:
\s;\c;if ( warunek )
\s;{
\s; \n;Instrukcje A ...\c;
\s;}
\s;else
\s;{
\s; \n;Instrukcje B ...\c;
\s;}
\n;
Przy użyciu tej struktury warunkowej można wykonać \l;blok\u cbot\bloc; A lub \l;blok\u cbot\bloc; B w zależności od \l;warunku\u cbot\cond;. Jeśli warunek jest prawdziwy, wykonywany jest blok A. Jeśli warunek jest fałszywy, wykonywany jest blok B.
Część \c;else { }\n; nie jest obowiązkowa.
\t;Uwaga
Na końcu linii \c;if ( )\n; nie należy stawiać \l;średnika\u cbot\term;.
\t;Zobacz również
\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;.