詳細設定で使用する 演算子 を説明します。
演算子とは、演算内容を指示する記号などのことです。演算の対象となる値や変数などは「被演算子」または「オペランド(operand)」と呼びます。たとえば「$cnt + 10」という式では、「$cnt」と「10」がオペランドで、「+」が演算子です。
詳細設定で使用できる演算子は、3種類あります。
| |
●算術演算子 |
算術式で使用される演算子。加減乗除のこと。 |
| |
●比較演算子 |
比較条件で使用される演算子。大小、以上以下、(非)等価のこと。 |
| |
●論理演算子 |
対象の真偽を評価する演算子。論理和、論理積のこと。 |
RouletteWinnerで使用できる演算子は、12つあります。
| 演算子 |
意味 |
| 算術演算子 |
算術式で使用される演算子 |
| |
+ |
加算(たし算) |
| − |
減算(引き算) |
| * |
乗算(掛け算) |
| / |
除算(割り算) |
| 比較演算子 |
比較条件で使用される演算子 |
| |
> |
より大きい |
| < |
より小さい |
| >= |
以上 |
| <= |
以下 |
| == |
等価(等しい) |
| != |
非等価(等しくない) |
| 論理演算子 |
対象の真偽を評価する演算子 |
| |
| |
論理和(または) |
| & |
論理積(かつ) |
| + |
※ |
「加算(たし算)」の算術演算子です。
(例)$cnt + 1 や $cnt + $skip など
「+」の前後に半角空白を挿入してください |
| - |
※ |
「減算 (引き算)」の算術演算子です。
(例)$cnt - 2 や $cnt - $skip など
「-」の前後に半角空白を挿入してください |
| * |
※ |
「乗算(掛け算)」の算術演算子です。
(例)$cnt * 3 や $cnt * $skip など
「*」の前後に半角空白を挿入してください |
| / |
※
※
|
「除算(割り算)」の算術演算子です。
(例)$cnt / 4 や $cnt / $skip など
「/」の前後に半角空白を挿入してください
演算結果は、丸めや四捨五入はしません。たとえば、1 / 3 の結果は 0.33333・・・ となります。 |
| > |
※ |
「より大きい」の比較演算子です。
(例)$cnt > 5 や $cnt > $skip など
「>」の前後に半角空白を挿入してください |
| < |
※ |
「より小さい」の比較演算子です。
(例)$cnt < 6 や $cnt < $skip など
「<」の前後に半角空白を挿入してください |
| >= |
※ |
「以上」の比較演算子です。
(例)$cnt >= 7 や $cnt >= $skip など
「>=」の前後に半角空白を挿入してください |
| <= |
※ |
「以下」の比較演算子です。
(例)$cnt <= 8 や $cnt <= $skip など
「<=」の前後に半角空白を挿入してください |
| == |
※ |
「等価(等しい)」の比較演算子です。
(例)$cnt == 9 や $cnt == $skip など
「==」の前後に半角空白を挿入してください |
| != |
※ |
「非等価(等しくない)」の比較演算子です。
(例)$cnt != 10 や $cnt != $skip など
「!=」の前後に半角空白を挿入してください |
| | |
※ |
「論理和(または)」の論理演算子です。
(例)$cnt != 11 | $cnt == $skip ($cntが11ではない、または、$cntが$skipと等しい)など
「|」の前後に半角空白を挿入してください |
| & |
※ |
「論理積(かつ)」の論理演算子です。
(例)$cnt != 12 & $cnt == $skip ($cntが12ではない、かつ、$cntが$skipと等しい)など
「&」の前後に半角空白を挿入してください |
【参考】
| 一般のプログラム開発ツールで使用される「単項演算子」「べき乗」「論理否定」は、RouletteWinnerでは使用できません。ただし、「剰余」は今後導入される予定です(導入時期は未定)。 |
詳細設定では、算術式と条件式を使用します。
算術式とは、変数や定数を算術演算子でつないだものです。複数の算術式を算術演算子でつないでも算術式です。ただし、かっこは使用できません。
算術式の例
| |
$cnt + 1
$cnt * 5 - $skip
|
ユーザ変数$cntと定数1を加算します
ユーザ変数$cntを5倍した結果からユーザ変数$skipを減算します |
条件式とは、条件を組み立てるために使用されます。「真(True)」または「偽(False)」によって表される真理値を持ちます。変数や定数を比較演算子でつないだもの、複数の条件を論理演算子でつないだものです。ただし、かっこは使用できません。
条件式の例
| |
$cnt > 3
$cnt == 4 | $cnt == 5
|
ユーザ変数$cntは定数3より大きいか
ユーザ変数$cntは定数4に等しいか、または定数5に等しいか |
代入とは、変数(左辺:等号の左側)に算術式から得られた結果の数値(右辺:等号の右側)を 等号(= )格納することです。等号の前後に半角空白を挿入します。また、代入の最後にセミコロン「;」を必ずつけます。
代入の例
| |
$cnt = $skip + 7;
$cnt = $cnt - 1;
|
ユーザ変数$skipに定数7を加算した結果を$cntに格納します
ユーザ変数$cntをデクリメント(1つ減算)します |
詳細設定で使用する算術式内や条件式内の評価順序は、一般のプログラム開発ツールのそれとは異なりますので注意が必要です。
RouletteWinnerでは、算術式内や条件式内の評価順序は 左から順番に 評価されます。評価の優先度はありません。純粋に左から評価されます。また、条件式内で条件を論理演算子でつないでいる場合は、最初に論理演算子の前後の条件が評価され、その後、一番左の論理演算子から評価されます。
具体例を次に示します。
【前提】$aに「1」、$bに「2」、$cに「3」、$dに「4」が設定されているものとします。
式 |
評価順序 |
結果 |
$a + $b |
1+2 |
3 |
| $a + $b - $c |
1+2→@、@(3)-3 |
0 |
| $a + $b * $c |
1+2→@、@(3)*3 |
9 |
| $a + $b - $c * $d |
1+2→@、@(3)-3→@、@(0)*4 |
0 |
| $a == 1 | $b == 2 |
1==1(真)、2==2(真)、真|真 |
真 |
| $a != 2 & $c != 3 |
1!=2(真)、3!=3(偽)、真&偽 |
偽 |
$a == 1 | $b == 2 & $c < 1 | $d <= 10
|
1==1(真)、2==2(真)、真|真→@、3<1(偽)、@(真)&偽→@、4<=10(真)、@(偽)|真 |
真 |
※@は、RouletteWinner 内部で使用する中間結果。かっこ内は、そのときの値。
3番目の例で、一般的なプログラム開発ツールは乗算の方が加算よりも優先度が高いため 「$b * $c」を先に行って、その結果と「$a」を加算する となりますが、RouletteWinner は単純に左から計算を行うので、上記のような評価(計算)順序になります。プログラミングに慣れている方は、十分に注意してください(意図とおりしたい場合は「$b * $c + $a」とします)。
最後の例では、一番左にある論理演算子(論理和の「|」)の前後の条件(「$a == 1」と「$b == 2」)を先に評価し、それを論理和します。次に、2番目の論理演算子(論理積の「&」)の前後の条件を行いますが、すでに前側は終わっているため、後ろ側の評価(「$c < 1」)を行ってから論理積します。最後に3番目の論理演算子(論理和)の前後の条件を行います。これも、後ろ側の評価(「$d <= 10」)を行って、2番目までの論理演算子の結果と論理和します。結果、「真」となります。
 |
算術式内や条件式内の評価順序は 純粋に左から順番に 評価されます |
|