- TestStand工業自動化測試管理(典藏版)
- 胡典鋼編著
- 1514字
- 2022-05-05 21:20:59
4.5.4 流程控制步驟
默認序列中的步驟是按順序執行的,而流程控制步驟可以額外控制步驟的執行方式。比如:條件執行語句可以選擇性地執行某些步驟;循環語句可以使步驟多次運行;Goto語句可以直接跳轉,打破執行順序。如果讀者有過文本編程的經驗,對于這些語句應該并不陌生,它們的原理基本是相通的。大體上可將TestStand中的流程控制步驟分為三類。
條件執行語句:if-else if-else和Select-Case
循環語句:For-For Each/While-Do While以及循環控制語句Break/Continue
Goto語句
1.條件執行語句
if語句有三種使用方法,第一種為直接if:
if(表達式)語句;
第二種為if-else:

以上適用于兩個分支的情況,當出現多個條件分支時,可以采用第三種if-else if-else:

由于這些步驟的使用比較直觀,也沒有需要特別配置的地方,比較容易在TestStand中掌握上述三種if語句的使用方法。
在范例資源的第4章練習中,附有例程<Exercises>\Chapter 4\Flow Control\If_ElseIf_Else.seq,讀者可以通過菜單命令“ExecuteSingle Pass”運行該范例并觀察結果。思考:如果將Locals.Index的值改為1,將會執行哪個分支?
Select-Case步驟類似于文本語言中的Switch-Case語句。如果Select表達式的值與某個Case分支中的常量表達式的值相等,則執行該Case分支。與文本語言中Switch-Case語句的不同之處在于:Select-Case步驟中,任何時候,只要有一個Case分支匹配,則在執行完該分支后,立刻跳出整個Select-Case結構,即最多只有一個Case分支被執行,并且它不需要Default默認分支。
Select-Case的形式如下:

在范例資源的第4章練習中,附有例程<Exercises>\Chapter 4\Flow Control\Select_Case.seq,讀者可以通過菜單命令“ExecuteSingle Pass”運行該范例并觀察結果。思考:如果將Locals.Name的值改為“Short”,將會執行哪個分支?
2.循環語句
在循環語句中,For循環和While循環的區別在于For循環是執行固定的次數,而While循環的執行次數預先是不知道的,由循環繼續條件(Loop Condition)決定。首先看For循環,當在序列中添加For步驟時,TestStand會自動添加一個對應的End步驟,如圖4-60所示;For Each、While、Do While等類似。

圖4-60 自動添加End步驟
For循環的使用方式有兩種,一種是“Fixed Number of Iterations”(固定循環次數),如圖4-61中,配置循環次數為“3”,循環變量設為“Locals.x”,當填寫完這兩項設置之后,右側的“Initialization”、“Condition”、“Increment”表達式就自動生成了。可以用如下偽碼表示:


圖4-61 For步驟特定配置頁
For循環的另一種方式是“Custom Loop”,在這種模式下,需要手動輸入初始化、循環條件、循環增量,這種方式的好處是更靈活。
在范例資源的第4章練習中,附有例程<Exercises>\Chapter 4\Flow Control\For.seq,讀者可以通過菜單命令“ExecuteSingle Pass”運行該范例并觀察結果。
For Each的作用和For類似,它是和一個數組關聯起來的。舉個例子,某一維數組的長度為10,那么For Each就將執行10次,每次循環將訪問該數組中當前索引下的元素。關于For Each不做過多介紹,有興趣的讀者可以查看幫助文檔,并運行例程<Exercises>\Chapter 4\Flow Control\ForEach.seq。
While與Do While的區別在于,While循環會先判斷循環條件是否得到滿足,若條件滿足才執行語句,而Do While則會先執行語句,再去評估循環條件,所以Do While中包含的語句至少會被執行一次。
在范例資源第4章練習中,附有例程<Exercises>\Chapter 4\Flow Control\While_DoWhile.seq,讀者可以通過菜單命令“ExecuteSingle Pass”運行該范例并觀察結果,體會While與Do While的區別。
所有的循環語句都可以用Break語句跳出循環,用Continue語句結束本次循環。Break語句用于從循環體內跳出,提前結束循環,程序接著執行循環后面的語句。Continue語句是強制跳過當前循環中剩余的語句而執行下一次循環,其作用為結束本次循環。Continue語句只結束本次循環,而不是終止整個循環的執行,Break語句則是結束整個循環過程。Break和Continue語句一般與if語句一起使用,例如:

3.Goto語句
Goto語句會改變序列執行的順序,它指向序列中的某個步驟(跳轉目標),這樣TestStand執行到Goto語句時,會直接跳轉到該步驟。在TestStand中,一般會使用標簽作為跳轉目標,標簽之后緊接著是相關的測試步驟,這樣做的好處是修改或刪除測試步驟時,不會影響Goto語句正常跳轉。Goto語句不可濫用,由于它改變了序列的執行順序,增加了調試和追蹤的難度,并且多次采用Goto語句跳轉,可能導致死循環。
- Design for the Future
- 程序設計缺陷分析與實踐
- ServiceNow Cookbook
- Zabbix Network Monitoring(Second Edition)
- 快學Flash動畫百例
- 自動化控制工程設計
- Multimedia Programming with Pure Data
- AWS Certified SysOps Administrator:Associate Guide
- 21天學通Visual C++
- 信息物理系統(CPS)測試與評價技術
- 手機游戲程序開發
- 奇點將至
- C++程序設計基礎(上)
- INSTANT VMware vCloud Starter
- 生物3D打印:從醫療輔具制造到細胞打印