colobot-data/help/cbot/R/bloc.txt

50 lines
3.0 KiB
Plaintext
Raw Normal View History

\b;Блоки
Можно использовать скобки \c;{ }\n; чтобы сгруппировать несколько инструкций вместе и составить из них целый блок, например:
\c;
\s; {
\s; float t;
\s; t = a;
\s; a = b;
\s; b = t; // переключает между a и b
\s; }
\n;
Каждая инструкци в блоке заканчивается \l;двоеточием\u cbot\term;, но не сам блок.
Расмотрим следующий пример с инструкцией \c;\l;if\u cbot\if;\n; чтобы проиллюстрировать блоки в программах:
\c;
\s; if ( a < b )
\s; \n;инструкция 1\c;;
\s; \n;инструкция 2\c;;
\s; \n;инструкция 3\c;;
\n;
Если \l;состояние\u cbot\cond; верно, то инструкции 1, 2 и 3 выполняются. Если состояние не верно, не выполняется только инструкция 1, а инструкции 2 и 3 выполняются. Тот факт, что инструкция 2 стоит в одной линии с инструкцией 1 на ход не влияет.
Если вы хотите выполнить только инструкции 1 и 2, причем условие выполняется, вам нужно выделить их вместе в одном блоке:
\c;
\s; if ( a < b )
\s; {
\s; \n;инструкция 1\c;;
\s; \n;инструкция 2\c;;
\s; }
\s; \n;инструкция 3\c;;
\n;
Блоки могут использоваться с инструкциями \c;\l;if\u cbot\if;\n;, \c;\l;while\u cbot\while;\n; и \c;\l;for\u cbot\for;\n;, чтобы сгруппировать отдельные инструкции, которые должны выполняться только если условие выполняется, или повторяется несколько раз.
Можно включать блоки в другие блоки, на столько уровней насколько нужно. Вот пример включения в скобки на двух уровнях:
\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;
Было бы целесообразнее выравнивать открытую скобку \c;{\n; по закрытой скобке \c;}\n; в целях улучшения читаемости, но это необязательно. Следующий пример занимает меньше места, но эквивалентен предыдущему примеру, однако писать свои программы в подобном стиле не рекомендуется:
\c;
\s; if(a>b) { int i=0; while(i<18) {
\s; move(10);turn(5);i=i+1; }}
\n;
\t;См. также
\l;Инструкции\u cbot;, \l;типы\u cbot\type; и \l;категории\u cbot\category;.