更新日: 作成日:
比較演算子や論理演算子
■はじめに
UiPath Studio の演算子について紹介します。演算子には、比較演算子・論理演算子・算術演算子があります。
比較演算子には、=(等しい)、<>(等しくない)などがあります。
論理演算子には、And(論理積)、Or(論理和)などがあります。
算術演算子には、+(足す)、-(引く)などがあります。
論理演算子と算術演算子には、優先順位があります。( )で囲むと最優先で評価できます。
■比較演算子
比較演算子は、条件分岐(If)などで比較を行う際に使用します。
結果はBoolean型(True、False)で返ってきます。
値 比較演算子 値 のように記載します。
ワイルドカード(* など)を使うにはLike演算子を使う必要があります。
10 < 10 False
10 <= 10 True
"abc" = "abc" True
"abc" <> "ABC" True
"abc" = "ab*" False
複数の比較を同時に評価したい場合には、論理演算子と組み合わせます。
x = 10 比較する数値型変数
5 <= x And x <= 15 True 「x」が5以上かつ15以下かどうか評価
text = "処理中" 比較する文字列型変数
text = "未処理" Or text = "処理済" False 「text」が「未処理」または「処理済」かどうか評価
詳しくは、下記の「論理演算子」をご覧ください。
・Like演算子
Like演算子はワイルドカードを使って、文字列を比較することができます。
"あいん"
"ABん"
"[A,N,Z]"
"A","N","Z"
"[!A,N,Z]"
"B","M","X"
文字列 Like パターン のように記載します。
"abc" Like "ab*" True "ab"で始まるか
"abc" Like "ab?" True "ab"で始まる3文字か
"12" Like "##" True 2桁数字か
"123" Like "#####" False 5桁数字か
"abc" Like "?#?" False 文字数字文字か
"abc" Like "[a-c]*" True "a"~"c"のどれかから始まるか
"abc" Like "[!a-c]*" False "a"~"c"以外から始まるか
"abc" Like "[a,c,e]*" True "a","c","e"のどれかから始まるか
"*a" Like "[*]?" True "*"で始まる2文字か
比較演算子やLike演算子以外にも、文字列のメソッドには比較ができるものがあります。
・検索文字が検索元の文字列内に含まれるか(String.Contains メソッド)
返ってくる値はブール型(True、False)になります。
Like演算子とは違って、ワイルドカードを使うことが出来ず、含まれているかどうかのみ判定しますので、検索文字が検索元の文字列内の先頭にあるのか末尾にあるのかは見分けられません。
Like演算子だと、"*検索文字*"で比較しているのと同じになります。
検索元の文字列型変数.Contains(検索文字列)
text = "abc" 検索元の文字列型変数
text.Contains("ab") 出力結果:True(ブール型)
text.Contains("bc") 出力結果:True
text.Contains("ac") 出力結果:False
・検索元の文字列先頭が、検索文字と一致するか(String.StartsWith メソッド)
返ってくる値はブール型(True、False)になります。
Like演算子だと、"検索文字*"で比較しているのと同じになります。
検索元の文字列型変数.StartsWith(検索文字列)
text = "abc" 検索元の文字列型変数
text.StartsWith("a") 出力結果:True(ブール型)
text.StartsWith("ab") 出力結果:True
text.StartsWith("ac") 出力結果:False
・検索元の文字列末尾が、検索文字と一致するか(String.EndsWith メソッド)
返ってくる値はブール型(True、False)になります。
Like演算子だと、"*検索文字"で比較しているのと同じになります。
検索元の文字列型変数.EndsWith(検索文字列)
text = "abc" 検索元の文字列型変数
text.EndsWith("c") 出力結果:True(ブール型)
text.EndsWith("bc") 出力結果:True
text.EndsWith("ac") 出力結果:False
・検索元の文字列と、検索文字が完全同一するか(String.Equals メソッド)
返ってくる値はブール型(True、False)になります。
比較演算子だと、text = "検索文字"で比較しているのと同じになります。
検索元の文字列型変数.Equals(検索文字列)
text = "abc" 検索元の文字列型変数
text.Equals("abc") 出力結果:True(ブール型)
text.Equals("ABC") 出力結果:False
text.Equals("ac") 出力結果:False
■論理演算子
論理演算子は、比較演算子等を使用した複数の比較を同時に評価することができます。
結果はBoolean型(True、False)で返ってきます。
True And False
False And True
True And True
False
False
True
True Or False
False Or True
True Or True
True
True
True
Not True
False
True Xor False
False Xor True
True Xor True
True
True
False
論理積のAnd(~かつ、~)は、どちらの比較もTrueのときのみ、結果がTrueとなります。
論理和のOr(~または、~)は、どちらかの比較がTrueであれば、結果がTrueとなります。
否定のNotは、比較結果が反転します。
排他的論理和のXorは、どちらかの比較がTrueのときのみ、結果がTrueとなります。
x = 8 比較する数値型変数
y = 15 比較する数値型変数
5 <= x And x <= 15 True 「x」が5以上かつ15以下かどうか評価
x = 4 Or x = 10 False 「x」が4または、10かどうか評価
Not x = 4 True 「x」が4以外かどうか評価
x >= 10 Xor y < 10 False 「x」と「y」がどちらとも10以上か10より小さいか評価
複数の論理演算子がある場合は、優先順位に従って順番に評価されていきます。詳しくは下記の「演算子の優先順位」をご覧ください。
■算術演算子
算術演算子は、四則演算などの計算と文字結合を行うことができます。
■演算子の優先順位
演算子には優先順位があります。優先順位が同じであれば、左から右に評価していきます。
1-2+3なら、1-2を計算してから、-1+3を計算します。
算術演算子と論理演算子には優先順位があり、優先順位の高いものから評価されていきます。
1 + 2 * 3
1 + 6 *(掛け算)を先に評価
7 +(足し算)を次に評価
True Or False And True
True Or False And(論理積)を先に評価
True Or(論理和)を次に評価
評価を( )で囲むと最優先で評価することができます。数式と同じ考え方になります。
(1 + 2) * 3
3 * 3 +(足し算)を先に評価
9 *(掛け算)を次に評価
text1 = "未処理" 比較する文字列型変数
text2 = "02" 比較する文字列型変数
(text1 = "未印刷" Or text1 = "未処理") And text2 = "01"
True And text2 = "01" Or(論理和)を先に評価
False And(論理積)を次に評価