不可能每個程式都跟前面的例子一樣從頭做到尾,而是要隨著使用者輸入而有不同的適當反應。這種根據狀況而只執行某些程式碼的寫法稱為「分支」。下列範例中的 If 和 Else 表示分支裡的兩種情形,若密碼輸入正確將只執行 If 到 Else 之間的程式碼,否則只執行 Else 到 EndIf 之間的程式碼。 If 後面必須寫出執行第一個分支所需要滿足的條件,條件結束後接 Then. 條件裡連寫兩個等於表示兩個字串 ($upass 跟 $passwd) 要完全相等,。把分支裡的程式碼向右縮排也是好習慣,有助於辨別整體程式碼的架構。 像 == 這類用在判斷條件的運算符號稱為關係運算符號,下面是 AutoIt 裡的關係運算符號:
$x > 0 And $y > 0
下面將判斷登入成功的程式擴展成同時檢查帳號與密碼:
If 的判斷條件含有兩部份,分別是「帳號全等」、「密碼全等」,因為必須一起打對才算成功,所以中間用「且」連接。 事情不會都這麼簡單分成 If 跟 Else 而以,很可能 Else 裡面其實又要細分其他狀況,這時使用 ElseIf, 舉例如下: AutoIt 執行到判斷時,會先檢驗 If 的條件,成立就執行 If 下的程式然後跳到 EndIf 以後,否則檢驗第一個 ElseIf 條件,成立就執行下面程式,否則又檢驗第二個 ElseIf, 如此下去,要是所有條件都不滿足才執行 Else. 判斷也可以只寫 If 沒有 Else, 下面展示單行的 If: If...Then MsgBox 一氣呵成不換行,就只有帳密都打對才提示燈入成功,要不然就直接結束了。這對於只要判斷一個條件成立,其他狀況都不管時相當有用。 看完 If...ElseIf...Else...EndIf 整個使用方式之後,我們可以用它來改進範例 4-3: 上例跟範例 4-3 相比,印出結果前多了三行對變數的處理,而且也分成兩個狀況來顯示結果。 $name 的處理是判斷它是否為空字串,是則將值改為「未具名用者」,當使用者沒輸入姓名直接按 OK, 或者用 Cancel 離開輸入對話,就會讓 $name 收到空字串而執行這個動作。 $height 跟 $weight 都用 Number 函式手動轉型,結果跟隱含轉型相同,目的在預先知道轉換後的結果,有機會挑出不合理的輸入。根據內建函式 Number 的行為規範,非數字開頭的字串被轉型後結果是 0, 所以只要把 0 從合理範圍中去除即可。有興趣的讀者可參見其他類似的手動轉型,包含 Int, String, 或者 StringIsInt 與 StringIsFloat 提供更進階的輸入格式掌握。 回 · 我的 AutoIt 學習筆記 這一篇文章封面 |
本站公告:〔您越需要我們,我們就越有創意〕 | 本站說明書:〔發現故鄉還有改進的地方,請來信告訴原丁們〕 |
觀察應用學習點數 :〔咱的故鄉有您的參與,會使我們有更大的發揮空間,展現更豐富精彩的學習畫面〕 | 〔期待藉由無障礙網頁設計,能讓視障小朋友更愛看書、更愛寫作且更愛學習〕:盲用電腦「心得分享」 |