控制#

介紹#

VEXcode EXP 中的控制區塊透過處理循環、條件和延遲區塊的運作來管理專案的流程。

循環是指電腦重複執行相同的步驟或步驟群組,直到收到停止指令為止。條件是計算機用來決定下一步操作的規則。例如,如果感測器偵測到物體,機器人就可以向前移動。

以下是可用模組列表:

  • wait – 暫停程式碼區塊運行指定的時間。

  • wait until – 暫停程式碼區塊運行,直到滿足指定的條件。

  • repeat – 將一組程式碼區塊重複指定次數。

  • forever – 無限重複一組方塊。

  • repeat until – 重複執行一組程式碼區塊,直到滿足某個條件。

  • while – 當條件為真時,重複執行一組程式碼區塊。

  • if – 若條件為真,則執行一組程式碼區塊。

  • if / else – 如果條件為真,則執行一組程式碼區塊;否則,執行另一組程式碼區塊。

  • if / else if / else – 根據多個條件執行不同的程式碼區塊集。

  • break – 立即退出 repeat、forever、repeat until 或 while 循環。

  • 停止專案 – 結束專案。

等待#

wait 堆疊區塊會在執行下一個程式碼區塊之前暫停目前程式碼區塊運行一段時間。

等待堆疊塊#
等待 (1) 秒

參數

描述

時間

等待時間,以秒為單位,表示為正整數或小數。

例子

啟動後向前移動一秒鐘,然後停止所有動作。#
當開始時
[Move forward for one second, then stop.]
行駛 [前方 v]
等待 (1) 秒
停止行駛

等到#

等待直到堆疊區塊會暫停程式碼區塊的運行,直到滿足指定的條件後才會執行下一個程式碼區塊。

等待直到堆疊塊#
等待直到 <>

參數

描述

狀態

進入下一模組之前必須滿足的條件。

例子

啟動後,向前移動,直到按下 ◀ 按鈕,然後停止所有移動。#
當開始時
[Move forward until the ◀ button is pressed, then stop.]
行駛 [前方 v]
等待直到 <Brain [◀ v] 按鈕按下?>
停止行駛

重複#

repeat C 程式碼區塊會執行其內部程式碼區塊設定的次數。

重複 c 塊#
重複 [10] 次
結束

參數

描述

時代

一個整數,用於設定重複程式碼區塊運行的次數。

例子

當開始時
[Move in a square path.]
重複 [4] 次
行駛 [前方 v] [150] [mm v] ▶
向 [右 v] 轉 [90] 度 ▶
結束

永遠#

永遠運行的C程式碼區塊會不停地重複執行它內部的程式碼區塊。

永遠的C塊#
永遠
結束

參數

描述

此程式碼區塊沒有參數。

例子

啟動後,沿著正方形路徑連續移動,向前移動 50 毫米,然後向右轉 90 度,形成無限循環。#
當開始時
[Move in a square path forever.]
永遠
行駛 [前方 v] [150] [mm v] ▶
向 [右 v] 轉 [90] 度 ▶
結束

重複直到#

repeat until C 程式碼區塊會重複執行其內部的程式碼區塊,直到滿足指定的條件為止。

重複直至阻塞#
重複直到 <>
結束

參數

描述

狀態

每次循環前都會檢查一個表達式或變數。如果該表達式或變數為False,則程式碼區塊繼續重複執行;如果該表達式或變數為True,則循環停止。

例子

啟動時,所有 LED 指示燈保持紅色,直到按下螢幕,然後熄滅。#
當開始時
[Turn until the screen is pressed.]
重複直到 <螢幕按下?>
向 [右 v] 轉
結束
停止行駛

儘管#

while C 程式碼區塊會在滿足指定條件時重複執行其內部的程式碼區塊。

當 c 塊#
當 <>
結束

參數

描述

狀態

每次循環前都會檢查一個表達式或變數。如果為真,則程式碼區塊繼續重複執行;如果為假,則循環停止。

例子

一系列程式碼區塊以 when started 程式碼區塊開始,後面跟著一個註解程式碼區塊,內容為「2 秒後顯示時間」。一個 wait until 程式碼區塊會暫停執行,直到計時器達到或超過 2 秒。一旦滿足此條件,一個 print 程式碼區塊會在螢幕上顯示計時器的值。#
當開始時
[Display the time for one minute.]
當 <(計時器(秒)) [math_less_than v] [60]>
清除螢幕
將游標設定到螢幕第 [1] 列第 [1] 欄
在螢幕上列印 (計時器(秒)) ▶

如果#

if C 程式碼區塊會在條件為True時執行其內部的程式碼區塊。

如果阻塞#
如果 <> 則
結束

參數

描述

狀態

語句運行時會檢查一個表達式或變數。如果該表達式或變數為真,則執行if程式碼區塊內的程式碼區塊;如果該表達式或變數為假,則跳過這些程式碼區塊。

例子

啟動後,機器人會持續偵測螢幕是否被按下。如果被按下,機器人會以中等力度踢一個物體。#
當開始時
[Turn in a circle if the screen is pressed.]
永遠
如果 <螢幕按下?> 則
向 [右 v] 轉 [360] 度 ▶
結束
停止行駛
結束

如果/否則#

if / else C 程式碼區塊根據條件是真還是假來決定要執行哪一組程式碼區塊。

如果則阻止#
如果 <> 則
否則
結束

參數

描述

狀態

語句運行時會檢查一個表達式或變數。如果它為真,則執行if程式碼區塊內的程式碼區塊。如果它為假,則執行else程式碼區塊內的程式碼區塊。

例子

如果則阻止#
當開始時
[Display a message if the screen is being pressed.]
永遠
清除螢幕
將游標設定到螢幕第 [1] 列第 [1] 欄
如果 <螢幕按下?> 則
在螢幕上列印 [Pressed!] ▶
否則
在螢幕上列印 [Not pressed!] ▶
結束

如果/否則如果/否則#

if / else if / else 可擴充 C 程式碼區塊依條件選擇要執行哪一組程式碼區塊:

  • 如果條件評估結果為True,則if 執行其程式碼區塊。

  • else if 語句僅在所有先前條件都為 False 時才會檢查其他條件。可以使用多個 else if 語句。

  • 否則,僅當前面所有條件皆不為真時,才會執行其程式碼區塊。

如果否則如果否則阻塞#
如果 <> 則
否則如果 <> 則
否則
結束

參數

描述

狀態

語句運行時會檢查一個表達式或變數。第一個為真的條件會執行該組代碼區塊。如果所有條件都為假,則會執行else程式碼區塊內的程式碼區塊。

例子

如果則阻止#
當開始時
[Move the robot based on the Controller button is being pressed.]
永遠
如果 <[Controller1 v] [▶ v] 按下?> 則
向 [右 v] 轉
否則如果 <[Controller1 v] [◀ v] 按下?> 則
向 [左 v] 轉
否則
停止行駛
結束

休息#

break 程式碼區塊會立即退出循環。此程式碼區塊可以用於 repeat、repeat until、while 和 forever 程式碼區塊中。當循環需要根據專案運行過程中發生的事件(例如按鈕被按下或感測器偵測到物體)提前停止時,break 非常有用。

中斷堆疊區塊#
中斷

參數

描述

此程式碼區塊沒有參數。

例子

啟動後,向右旋轉,直到按下螢幕,然後停止。#
當開始時
[Stop turning after the screen is pressed.]
永遠
向 [右 v] 轉
如果 <螢幕按下?> 則
中斷
結束
結束
停止行駛

停止項目#

停止專案堆疊區塊會結束正在執行的專案。

停止項目阻塞#
停止專案

參數

描述

此程式碼區塊沒有參數。

例子

啟動後,螢幕會向右旋轉,直到按下螢幕,然後停止播放。#
當開始時
[Stop the project entirely after the screen is pressed.]
永遠
向 [右 v] 轉
如果 <螢幕按下?> 則
停止專案
結束
結束