控制#
介紹#
VEXcode 中的控制區塊透過處理循環、條件和延遲區塊的運作來管理專案的流程。
循環是指電腦重複執行相同的步驟或步驟群組,直到收到停止指令為止。條件是計算機用來決定下一步操作的規則。例如,當機械手臂正在移動物體時,指示燈可以亮起。
以下是可用模組列表:
wait – 暫停程式碼區塊運行指定的時間。
wait until – 暫停程式碼區塊運行,直到滿足指定的條件。
repeat – 將一組程式碼區塊重複指定次數。
forever – 無限重複一組方塊。
repeat until – 重複執行一組程式碼區塊,直到滿足某個條件。
while – 當條件為真時,重複執行一組程式碼區塊。
if – 若條件為真,則執行一組程式碼區塊。
if / else – 如果條件為真,則執行一組程式碼區塊;否則,執行另一組程式碼區塊。
if / else if / else – 根據多個條件執行不同的程式碼區塊集。
break – 立即退出 repeat、forever、repeat until 或 while 循環。
停止專案 – 結束專案。
等待#
wait 堆疊區塊會在執行下一個程式碼區塊之前暫停目前程式碼區塊運行一段時間。
等待 (1) 秒
參數 |
描述 |
|---|---|
時間 |
等待時間,以秒為單位,表示為正整數或小數。 |
例子
當開始時
[Move to the left, then the right after one second.]
將 [手臂 v] 位置遞增 x:[100] y:[0] z:[0] [mm v] ▶
等待 (1) 秒
將 [手臂 v] 位置遞增 x:[-100] y:[0] z:[0] [mm v] ▶
等到#
等待直到堆疊區塊會暫停程式碼區塊的運行,直到滿足指定的條件後才會執行下一個程式碼區塊。
等待直到 <>
參數 |
描述 |
|---|---|
狀態 |
進入下一模組之前必須滿足的條件。 |
重複#
repeat C 程式碼區塊會執行其內部程式碼區塊設定的次數。
重複 [10] 次
結束
參數 |
描述 |
|---|---|
時代 |
一個整數,用於設定重複程式碼區塊運行的次數。 |
例子
當開始時
[Move in a square pattern.]
重複 [4] 次
將 [手臂 v] 位置遞增 x:[2] y:[0] z:[0] [英吋 v] ▶
將 [手臂 v] 位置遞增 x:[0] y:[2] z:[0] [英吋 v] ▶
將 [手臂 v] 位置遞增 x:[-2] y:[0] z:[0] [英吋 v] ▶
將 [手臂 v] 位置遞增 x:[0] y:[2] z:[0] [英吋 v] ▶
結束
永遠#
永遠運行的C程式碼區塊會不停地重複執行它內部的程式碼區塊。
永遠
結束
參數 |
描述 |
|---|---|
此程式碼區塊沒有參數。 |
例子
當開始時
[Move in a square path forever.]
永遠
將 [手臂 v] 位置遞增 x:[2] y:[0] z:[0] [英吋 v] ▶
將 [手臂 v] 位置遞增 x:[0] y:[2] z:[0] [英吋 v] ▶
將 [手臂 v] 位置遞增 x:[-2] y:[0] z:[0] [英吋 v] ▶
將 [手臂 v] 位置遞增 x:[0] y:[2] z:[0] [英吋 v] ▶
結束
重複直到#
repeat until C 程式碼區塊會重複執行其內部的程式碼區塊,直到滿足指定的條件為止。
重複直到 <>
結束
參數 |
描述 |
|---|---|
狀態 |
每次循環前都會檢查一個表達式或變數。如果該表達式或變數為False,則程式碼區塊繼續重複執行;如果該表達式或變數為True,則循環停止。 |
例子
當開始時
[Increment along the x-axis until it's no longer possible.]
重複直到 <非 <[手臂 v] 增量位置 x:[100] y:[0] z:[0] [mm v]?>>
將 [手臂 v] 位置遞增 x:[100] y:[0] z:[0] [mm v] ▶
結束
設定 [手臂 v] 控制停止
儘管#
while C 程式碼區塊會在滿足指定條件時重複執行其內部的程式碼區塊。
當 <>
結束
參數 |
描述 |
|---|---|
狀態 |
每次循環前都會檢查一個表達式或變數。如果為真,則程式碼區塊繼續重複執行;如果為假,則循環停止。 |
例子
當開始時
[Display the 6-Axis Arm's position as it moves.]
移動 [手臂 v] 至位置 x:(-100) y:(200) z:(100) [mm v] ◀ 且不等待
當 <非 <[手臂 v] 移動完成?>>
在主控台列印 ([手臂 v] 位置 [y v]([mm v])) ◀ 並將游標移至下一列
等待 [0.25] 秒
如果#
if C 程式碼區塊會在條件為True時執行其內部的程式碼區塊。
如果 <> 則
結束
參數 |
描述 |
|---|---|
狀態 |
語句運行時會檢查一個表達式或變數。如果該表達式或變數為真,則執行if程式碼區塊內的程式碼區塊;如果該表達式或變數為假,則跳過這些程式碼區塊。 |
例子
當開始時
[Check if the 6-Axis Arm can move to a position.]
如果 <非 <[手臂 v] 可移動至位置 x:[0] y:[0] z:[0] [mm v]?>> 則
列印 [The 6-Axis Arm can't move to this position.] ◀ 並將游標移至下一列
如果/否則#
if / else C 程式碼區塊根據條件是真還是假來決定要執行哪一組程式碼區塊。
如果 <> 則
否則
結束
參數 |
描述 |
|---|---|
狀態 |
語句運行時會檢查一個表達式或變數。如果它為真,則執行if程式碼區塊內的程式碼區塊。如果它為假,則執行else程式碼區塊內的程式碼區塊。 |
例子
當開始時
[Check if the 6-Axis Arm can or can't move to a position.]
如果 <非 <[手臂 v] 可移動至位置 x:[100] y:[100] z:[100] [mm v]?>> 則
在主控台列印 [The 6-Axis Arm can't move to this position.] ◀ 並將游標移至下一列
否則
在主控台列印 [The 6-Axis Arm can move to this position.] ◀ 並將游標移至下一列
如果/否則如果/否則#
if / else if / else 可擴充 C 程式碼區塊依條件選擇要執行哪一組程式碼區塊:
如果條件評估結果為True,則if 執行其程式碼區塊。
else if 語句僅在所有先前條件都為 False 時才會檢查其他條件。可以使用多個 else if 語句。
否則,僅當前面所有條件皆不為真時,才會執行其程式碼區塊。
如果 <> 則
否則如果 <> 則
否則
結束
參數 |
描述 |
|---|---|
狀態 |
語句運行時會檢查一個表達式或變數。第一個為真的條件會執行該組代碼區塊。如果所有條件都為假,則會執行else程式碼區塊內的程式碼區塊。 |
例子
當開始時
[Move until the 6-Axis Arm is at the corner of the tile.]
如果 <[手臂 v] 增量位置 x:[50] y:[0] z:[0] [mm v]?> 則
將 [手臂 v] 位置遞增 x:[50] y:[0] z:[0] [mm v] ▶
否則如果 <[手臂 v] 增量位置 x:[0] y:[50] z:[0] [mm v]?> 則
將 [手臂 v] 位置遞增 x:[0] y:[50] z:[0] [mm v] ▶
否則
在主控台列印 [The 6-Axis Arm has reached the corner.] ◀ 並將游標移至下一列
休息#
break 程式碼區塊會立即退出循環。此程式碼區塊可以用於 repeat、repeat until、while 和 forever 程式碼區塊中。當循環需要根據專案運行過程中發生的事件(例如按鈕被按下或感測器偵測到物體)提前停止時,break 非常有用。
中斷
參數 |
描述 |
|---|---|
此程式碼區塊沒有參數。 |
停止項目#
停止專案堆疊區塊會結束正在執行的專案。
停止專案
參數 |
描述 |
|---|---|
此程式碼區塊沒有參數。 |