「演算子」の版間の差分

提供: AB開発Wiki
ナビゲーションに移動検索に移動
65行目: 65行目:
 
== 全体の優先順位 ==
 
== 全体の優先順位 ==
 
優先順位はキャスト演算子、算術演算子、関係演算子、論理演算子の順になります。
 
優先順位はキャスト演算子、算術演算子、関係演算子、論理演算子の順になります。
 +
 +
 +
== 結合規則 ==
 +
ABの式は左結合です。同一優先順位の演算子が一つの式に複数存在するときは、式は左から右へ順に評価されます。式の一部を他の部分より優先的に評価する場合は、括弧を使います。下記に例を示します。
 +
 +
Print 128/32/4
 +
Print 128/(32/4)
 +
 +
一番目の式は左から順に式が評価されるため、"128÷32" の結果から4を割ります。二番目の式は括弧内の "32÷4" が優先的に評価され、その結果で128を割ります。

2006年10月15日 (日) 03:04時点における版

演算子とは与えられたオペランド(または式)を対象に評価を行い、結果を返す動作を提供します。ABでは下記の演算子が利用できます。

代入演算子

A =    B   '単純代入
A *=   B   '乗算代入
A /=   B   '除算代入
A \=   B   '整数除算代入
A mod= B   '乗除代入
A +=   B   '加算代入
A -=   B   '減算代入
A <<=  B   '左シフト代入
A >>=  B   '右シフト代入
A and= B   '論理積代入
A or=  B   '論理和代入
A xor= B   '排他的論理和代入

A = B

B式の演算結果はAの型に暗黙的にキャストされ(キャストの種類によっては警告・エラーになる場合があります)、Aに代入されます。

その他の代入演算子の例を挙げてみます。

A and= B

このコードは、Aが一度しか参照されない点を除き、下記のコードと同等の意味になります。

A = A and B


キャスト演算子

A As B

Bには型名を指定します。AはBの型にキャストされます。


算術演算子

A ^   B   '指数演算
- A       'マイナス符号
A *   B   '乗算
A /   B   '除算
A \   B   '整数除算
A mod B   '乗除演算
A +   B   '加算
A -   B   '減算
A >>  B   '右シフト
A <<  B   '左シフト

優先順位は上に位置するものほど高くなっています。ただし、「乗算・除算・整数除算」、または「加算・減算」の優先順位は同一です。同一優先順位の演算子が一つの式に複数存在するときは、式は左から右へ順に評価されます。


比較演算子

A =  B   'AとBは等しい 
A <> B   'AとBは等しくない
A <  B   'AはB未満
A >  B   'AはBより大きい
A <= B   'AはB以上
A >= B   'AはB以下

条件が一致したときは "-1" が、一致しなかったときは "0" が返ります。


論理演算子

Not A     '論理否定
A and B   '論理積
A or  B   '論理積
A xor B   '排他的論理和

優先順位は上に位置するものほど高くなっています。論理演算


全体の優先順位

優先順位はキャスト演算子、算術演算子、関係演算子、論理演算子の順になります。


結合規則

ABの式は左結合です。同一優先順位の演算子が一つの式に複数存在するときは、式は左から右へ順に評価されます。式の一部を他の部分より優先的に評価する場合は、括弧を使います。下記に例を示します。

Print 128/32/4
Print 128/(32/4)

一番目の式は左から順に式が評価されるため、"128÷32" の結果から4を割ります。二番目の式は括弧内の "32÷4" が優先的に評価され、その結果で128を割ります。