3.4.1 代入操作
代入操作では、右オペランドの値を左オペランドに割り当てます。代入操作の左オペランドは定数ではありません。
(1) 形式
- 代入ステートメント
assignment_expression END_STMT
- 代入式
identifier assign_operand expression
(2) 説明
代入操作では、右の値の型は左の値の型に変換され、割り当て後は左オペランドに値が格納されます。左オペランドは関数または定数にしないでください。
右オペランドと左オペランドの型が異なる場合は、型変更が実行されます。型変更は、指定された演算子と、オペランドまたは演算子の型に応じて実行されます。
AIT言語で実行される型変更を次の表に示します。警告やエラーは文法チェック時に表示されます。
左オペランドの型 |
右オペランドの型 |
結果 |
説明 |
---|---|---|---|
integer |
integer |
integer |
integer型変数の値が別のinteger型変数に代入されます。 |
integer |
float |
integer |
切り捨て後の値がinteger型変数に代入されます。データの正確性が損なわれるため警告が表示されます。 |
integer |
bool |
integer |
trueは1として、falseは0としてinteger型変数に代入されます。 |
integer |
string |
エラー |
string値はintegerに型変更できないため、エラーが表示されます。 |
float |
integer |
float |
integer型変数の値がfloat型変数に代入されます。 |
float |
float |
float |
float型変数の値が別のfloat型変数に代入されます。 |
float |
bool |
float |
trueは1.0として、falseは0.0としてfloat型変数に代入されます。 |
float |
string |
エラー |
string値はfloatに型変更できないため、エラーが表示されます。 |
bool |
integer |
bool |
0以外の値はtrueとして、0はfalseとしてbool型変数に代入されます。データが失われるため警告が表示されます。 |
bool |
float |
bool |
|
bool |
bool |
bool |
bool型変数の値が別のbool型変数に代入されます。 |
bool |
string |
エラー |
string型変数の値はboolに型変更できないため、エラーが表示されます。 |
string |
integer |
エラー |
integer型変数の値はstringに型変更できないため、エラーが表示されます。 |
string |
float |
エラー |
float型変数の値はstringに型変更できないため、エラーが表示されます。 |
string |
bool |
エラー |
bool型変数の値はstringに型変更できないため、エラーが表示されます。 |
string |
string |
string |
string型変数の値が別のstring型変数に代入されます。 |
(3) 記述例
MAIN { a = 10; // 10という値がaに代入されます。 a = b = 20; // 多重代入が指定されています。 // 20という値が始めに変数bに代入され、 // 次に変数aに代入されます。 }