今回は,制御構文など第3回で触れられなかった文法について説明していきます。
演算子
JavaFX Scriptで使用可能な演算子の一覧を表1に示しました。基本的にJavaとそれほど変わることはありません。また,演算の評価順序もJavaのそれに準拠しています。なお,インタープリタ版では不等号を表す演算子は<>でしたが,1.0では!=に変更されています。
しかし,論理演算子のandやorなど,Javaとは表記が異なる演算子もあります。表記が異なるだけで,使い方はJavaと変わりません。表記も使い方も異なるのが,キャストとシーケンスに対する演算子です。これらはいずれも,第3回ですでに説明していますので,ここでは省略させていただきます。
また,アニメーションで使用するトゥイーン演算子はJavaにはありません。このトゥイーン演算子に関してはアニメーションを解説する回で詳しく触れる予定です。
Javaには存在するのに,JavaFX Scriptでは存在しない演算子には,%=やシフト演算,ビット論理演算などがあります。また,条件演算子の?:もJavaFX Scriptには存在しません。条件演算子に関しては,後述するif文で代用することができます。
表1 JavaFX Scriptでの演算子一覧
| 演算子の種類 | 演算子 | 説明 | 相当するJavaの演算子 | オペランドの型 | 結果の型 |
|---|---|---|---|---|---|
| 代入演算子 | = | 代入 | = | ||
| 複合代入演算子 | += | 加算して代入 | += | Integer += Integer | Integer |
| Integer += Number | Integer | ||||
| Number += Integer | Number | ||||
| Number += Number | Number | ||||
| Duration += Duration | Duration | ||||
| -= | 減算して代入 | -= | Integer -= Integer | Integer | |
| Integer -= Number | Integer | ||||
| Number -= Integer | Number | ||||
| Number -= Number | Number | ||||
| Duration -= Duration | Duration | ||||
| *= | 乗算して代入 | *= | Integer *= Integer | Integer | |
| Integer *= Number | Integer (計算はNumberを使用) | ||||
| Number *= Integer | Number | ||||
| Number *= Number | Number | ||||
| Duration *= Integer | Duration | ||||
| Duration *= Number | Duration | ||||
| /= | 除算して代入 | /= | Integer /= Integer | Integer | |
| Integer /= Number | Integer (計算はNumberを使用) | ||||
| Number /= Integer | Number | ||||
| Number /= Number | Number | ||||
| Duration /= Integer | Duration | ||||
| Duration /= Number | Duration | ||||
| トゥイーン演算子 | => | トゥイーン | なし | Duration => Duration | Duration |
| 二項論理演算子 | and | 条件論理積 | && | Boolean and Boolean | Boolean |
| or | 条件論理和 | || | Boolean or Boolean | Boolean | |
| 単項論理演算子 | not | 否定 | ! | not Boolean | Boolean |
| 型演算子 | instanceof | 型の比較 | instanceof | Object instanceof 型 | Boolean |
| as | キャスト | (型) | Object as 型 | (型で指定した)Object | |
| 関係演算子 | == | 等しい | == | Object == Object | Boolean |
| != | 等しくない | != | Object != Object | Boolean | |
| < | 左辺の値が右辺の値より小さい | < | Integer < Integer | Boolean | |
| Integer < Number | |||||
| Number < Integer | |||||
| Number < Number | |||||
| Duration < Duration | |||||
| <= | 左辺の値が右辺の値以下 | <= | Integer <= Integer | Boolean | |
| Integer <= Number | |||||
| Number <= Integer | |||||
| Number <= Number | |||||
| Duration <= Duration | |||||
| > | 左辺の値が右辺の値より大きい | > | Integer > Integer | Boolean | |
| Integer > Number | |||||
| Number > Integer | |||||
| Number > Number | |||||
| Duration > Duration | |||||
| >= | 左辺の値が右辺の値以上 | >= | Integer >= Integer | Boolean | |
| Integer >= Number | |||||
| Number >= Integer | |||||
| Number >= Number | |||||
| Duration >= Duration | |||||
| 二項算術演算子 | + | 加算 | + | Integer + Integer | Integer |
| Integer + Number | Number | ||||
| Number + Integer | Number | ||||
| Number + Number | Number | ||||
| Duration + Duration | Duration | ||||
| - | 減算 | - | Integer - Integer | Integer | |
| Integer - Number | Number | ||||
| Number - Integer | Number | ||||
| Number - Number | Number | ||||
| Duration - Duration | Duration | ||||
| * | 乗算 | * | Integer * Integer | Integer | |
| Integer * Number | Number | ||||
| Number * Integer | Number | ||||
| Number * Number | Number | ||||
| Integer * Duration | Duration | ||||
| Number * Duration | Duration | ||||
| Duration * Integer | Duration | ||||
| Duration * Number | Duration | ||||
| / | 除算 | / | Integer / Integer | Integer | |
| Integer / Number | Number | ||||
| Number / Integer | Number | ||||
| Number / Number | Number | ||||
| Duration / Integer | Duration | ||||
| Duration / Number | Duration | ||||
| Duration / Duration | Number | ||||
| mod | 除算の余り | % | Integer mod Integer | Integer | |
| 前置単項演算子 | - | 符号の反転 | - | - Integer | Integer |
| - Number | Number | ||||
| - Duration | Duration | ||||
| sizeof | シーケンスのサイズ | length | sizeof シーケンス | Integer | |
| reverse | シーケンスの反転 | なし | reverse シーケンス | シーケンス | |
| ++ | インクリメント | ++ | ++Integer | Integer | |
| ++Number | Number | ||||
| -- | デクリメント | -- | --Integer | Integer | |
| --Number | Number | ||||
| indexof | シーケンスのインデックス | なし | Index | ||
| 後置演算子 | ++ | インクリメント | ++ | Integer++ | Integer |
| Number++ | Number | ||||
| -- | デクリメント | -- | Integer-- | Integer | |
| Number-- | Number |

