一、迴圈
1. repeat(n) {...} //執行{ }中的程式碼n次
//讓機器人走一個正方形
#define _GO_STRAIGHT_TIME 3000
#define _TURN_TIME 700
#define _GO_STRAIGHT_POWER 80
#define _TURN_POWER 50
task main()
{
- repeat(4){
OnFwd(OUT_BC,_GO_STRAIGHT_POWER);
Wait(_GO_STRAIGHT_TIME);
OnRev(OUT_C,_TURN_POWER);
Wait(_TURN_TIME);
}
Off(OUT_BC);
}
2. while(條件) {...} //當條件成立時執行{ }中的程式碼
//讓機器人走一個正方形
#define _GO_STRAIGHT_TIME 3000
#define _TURN_TIME 700
#define _GO_STRAIGHT_POWER 80
#define _TURN_POWER 50
task main()
{
- int i=0;
while(i < 4){
- OnFwd(OUT_BC,_GO_STRAIGHT_POWER);
Wait(_GO_STRAIGHT_TIME);
OnRev(OUT_C,_TURN_POWER);
Wait(_TURN_TIME);
i++;
}
Off(OUT_BC);
}
3. do {...} while(條件) ; //本迴圈至少會執行一次
4. for(初始設定;條件;每次迭代最後要執行的指令) {...}
//讓機器人走一個正方形
#define _GO_STRAIGHT_TIME 3000
#define _TURN_TIME 700
#define _GO_STRAIGHT_POWER 80
#define _TURN_POWER 50
task main()
{
- int i;
for(i=0; i < 4; i++){
- OnFwd(OUT_BC,_GO_STRAIGHT_POWER);
Wait(_GO_STRAIGHT_TIME);
OnRev(OUT_C,_TURN_POWER);
Wait(_TURN_TIME);
}
Off(OUT_BC);
}
二、條件判斷
1. if(條件){...} else {...}
//讓機器人隨意散步
task main()
{
int run_time = 0; //宣告一個整數變數,名為run_time,其初值為0
while (true){
- run_time = (3+ Random(6-3)); //隨機取 3~5
NumOut(5,20,run_time,true);
TextOut(5,10,"Go Straight!");
OnFwd(OUT_BC,80); //設定B、C port 的馬達以80%的Power正轉。
Wait(run_time*1000); //等待 run_time 秒
if (run_time % 2 ==0){ //右轉
- NumOut(5,20,run_time,true);
TextOut(5,10,"Turn Right!");
OnRev(OUT_C,80); //設定C port 的馬達以80%的Power後退。
Wait(run_time*1000); //等待 run_time 秒
}
else { //左轉
- NumOut(5,20,run_time,true);
TextOut(5,10,"Turn Left!");
OnRev(OUT_B,80); //設定B port 的馬達以80%的Power後退。
Wait(run_time*1000); //等待 run_time 秒
}
} //end while
}
2.switch(條件){...}
switch(x)
{
case 1:
- // 撰寫x==1 時要做的事...
break; //跳出switch
case 2:
case 3:
- // 撰寫x==2或3時要做的事...
break; //跳出switch
default:
- // 撰寫當x不是1, 2, 3 時要做的事...
break; //跳出switich
註:NXC的 switch 可以使用 string 型別來判斷喔!
沒有留言:
張貼留言