UiPath - AndAlso運算符


在if活動里添加下面的條件:

mystr IsNot Nothing And mystr.Contains('000')

  • 字符串的Contains()方法:參數是一個字符串,表示要去目標字符串中查找的文本。返回值是一個布爾值。例如'abcdefg'.Contains('bcd'),返回True。

試想當變量mystr是Nothing時會發生什么?

And運算符的邏輯是,不管每個條件的結果是什么,對所有條件都檢查一遍。

因此當變量mystr是Nothing時會發生異常,因為當檢查到myStr.Contains('000')時,Nothing是沒有Contains()方法的。


 

現在我們把條件修改為:

mystr IsNot Nothing AndAlso mystr.Contains('000')

AndAlso運算符的邏輯是,先檢查第一個條件,如果其結果為False,就不進行下一條件的檢查了。因為“且”的邏輯是,第一個條件為False,不管后面的條件是True還是False,整個判斷結果已經是False了。

所以當變量mystr是Nothing的時候,第一個條件判斷結果為False,就不會取判斷下一個條件mystr.Contains('000')了。

這種跳過條件的邏輯運算叫做短路(short-circuiting),類似的運算符還有OrElse

 

實在弄不明白也沒事,畢竟我們還可以嵌套if啊!

 

ps.有可能斷更一段時間的Level 2。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM