このページの内容

演算子と優先順位

ProcessMindの式では、算術計算、比較、論理演算にさまざまな演算子を使用できます。

演算子

算術演算子

記号 Name 説明 結果
+ 加算 2つの数値を加算するか、文字列を連結します。 5 + 3 8
- 減算 2番目の数値を1番目の数値から減算します。 10 - 4 6
* 乗算 2つの数値を乗算します。 6 * 7 42
/ 除算 1番目の数値を2番目の数値で除算します。 15 / 3 5

比較演算子

記号 Name 説明 結果
== 等しい 2つの値が等しいかどうかを確認します。 Status == "Active" trueまたはfalse
!= 等しくない 2つの値が等しくないかどうかを確認します。 Status != "Deleted" trueまたはfalse
< より小さい 1番目の値が2番目の値より小さいかどうかを確認します。 Amount < 100 trueまたはfalse
> より大きい 1番目の値が2番目の値より大きいかどうかを確認します。 Amount > 1000 trueまたはfalse
<= 以下 1番目の値が2番目の値以下かどうかを確認します。 Count <= 10 trueまたはfalse
>= 以上 1番目の値が2番目の値以上かどうかを確認します。 Score >= 80 trueまたはfalse
in リスト内 値が値のリストに含まれているかどうかを確認します。 Status in ["A", "B", "C"] trueまたはfalse

論理演算子

記号 Name 説明 結果
&& 論理AND 両方の条件がtrueの場合にtrueを返します。 Amount > 100 && Status == "Active" trueまたはfalse
and 論理AND(キーワード) &&の別名です。両方の条件がtrueの場合にtrueを返します。 Amount > 100 and Status == "Active" trueまたはfalse
|| 論理OR 少なくとも1つの条件がtrueの場合にtrueを返します。 Priority == "High" || Urgent == true trueまたはfalse
or 論理OR(キーワード) ||の別名です。少なくとも1つの条件がtrueの場合にtrueを返します。 Priority == "High" or Urgent == true trueまたはfalse
! 論理NOT ブール値を否定します。 !IsDeleted trueまたはfalse
not 論理NOT(キーワード) !の別名です。ブール値を否定します。 not IsDeleted trueまたはfalse

優先順位

優先順位の高い演算子から先に評価されます。括弧を使うと、既定の優先順位を変更できます。

優先順位 Category 演算子 Associativity
1 論理OR || , or 左から右
2 論理AND && , and 左から右
3 等価 == , != 左から右
4 比較 < , > , <= , >= , in 左から右
5 加算・減算 + , - 左から右
6 乗算・除算 * , / 左から右
7 単項 ! , not , - 右から左
8 関数呼び出し () 左から右
9 括弧 ( )

演算子に関する補足

  • 文字列の連結と++演算子は、どちらか一方のオペランドが文字列の場合、文字列も連結します。

    "Hello" + " " + "World""Hello World"
  • in演算子は、複数のOR比較と同じ意味です。

    Status in ["Pending", "Active", "Review"]
    // is the same as:
    Status == "Pending" || Status == "Active" || Status == "Review"

  • 条件の組み合わせ:

    // Both conditions must be true
    Amount > 1000 && Region == "Europe"
    
    // At least one condition must be true  
    Priority == "High" or Escalated == true
    
    // Negation
    not IsArchived

三項演算子

三項演算子を使うと、単純なif/elseロジックを短く記述できます。

  • 構文:

    condition ? valueIfTrue : valueIfFalse
  • 例:

    Amount > 1000 ? "High" : "Low"
  • 同等の記述:

    if(Amount > 1000, "High", "Low")

優先順位の例

  • 括弧なし:

    2 + 3 * 414  (multiplication first)
    10 > 5 && 3 < 7true  (comparisons before AND)
  • 括弧あり:

    (2 + 3) * 420  (addition first)

特殊な構文

  • 引用符付き識別子:列名に空白や特殊文字が含まれる場合は、バッククォートを使用します。

    `Order Amount` * 0.1
    `Customer Name`
    `2024 Revenue`
  • 文字列のエスケープ:文字列内の特殊文字をエスケープするには、バックスラッシュを使用します。

    "Line 1\nLine 2"     // newline
    "Tab\there"          // tab
    "Say \"Hello\""      // double quote
    "Path\\to\\file"     // backslash
  • null値:欠損値を表すにはnullを使用します。

    if(Department == null, "Unknown", Department)

    またはisNull()関数を使用します。

    if(isNull(Department), "Unknown", Department)

関連トピック