\b;Blöcke
Mit geschwungenen Klammern können Sie eine Reihe von Anweisungen in einen einzigen Block gruppieren, z.B.: 
\c;
\s;	{
\s;		float  t;
\s;		t = a;
\s;		a = b;
\s;		b = t;  // vertauscht a und b
\s;	}
\n;
Jede Anweisung im Block wird von einem \l;Strichpunkt\u cbot\term; gefolgt, aber nicht der eigentliche Block (kein Strichpunkt nach der Klammer \c;}\n;). Um den Zweck von Blöcken zu verstehen, nehmen wir das Beispiel einer \c;\l;if\u cbot\if;\n;-Anweisung:
\c;
\s;	if ( a < b )
\s;		\n;Anweisung 1\c;;
\s;		\n;Anweisung 2\c;;
\s;	\n;Anweisung 3\c;;
\n;
Wenn die \l;Bedingung\u cbot\cond; wahr ist, werden die Anweisungen 1, 2 und 3 ausgeführt. Wenn die Bedingung falsch ist, wird nur die Anweisung 1 übersprungen, die Anweisungen 2 und 3 werden ausgeführt. Die Tatsache, dass die Anweisung 2 wie die Anweisung 1 eingerückt ist, spielt keine Rolle.
Wenn die Anweisungen 1 und 2 nur ausgeführt werden sollen, wenn die Bedingung wahr ist, müssen Sie sie mit geschwungenen Klammern zu einem Block zusammenschließen:
\c;
\s;	if ( a < b )
\s;	{
\s;		\n;Anweisung 1\c;;
\s;		\n;Anweisung 2\c;;
\s;	}
\s;	\n;Anweisung 3\c;;
\n;
Blöcke werden vor allem mit den Anweisungen \c;\l;if\u cbot\if;\n;, \c;\l;while\u cbot\while;\n; und \c;\l;for\u cbot\for;\n; gebraucht. So können mehrere Anweisungen von einer Bedingung abhängig gemacht oder wiederholt werden.
Blöcke können auch auf mehreren Ebenen ineinander verschachtelt werden. Hier ist ein Beispiel einer Verschachtelung auf zwei Ebenen:
\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;
Der Programmeditor rückt die Anweisungen in einem Block automatisch ein (verschiebt sie nach rechts). So werden die Programme viel lesbarer. Zum Vergleich hier das gleiche Programm wie oben, aber ohne Einrückung und Zeilensprünge:
\c;
\s;	if(a>b) { int i=0; while(i<18) {
\s;	move(10);turn(5);i=i+1; }}
\n;
\t;Siehe auch
Die \l;CBOT-Sprache\u cbot;, \l;Variablentypen\u cbot\type; und \l;Kategorien\u cbot\category;.
