=演算子
日本語 | 代入演算子 |
英語 | assignment operator、equal operator |
ふりがな | いこーるえんざんし |
フリガナ | イコールエンザンシ |
値を変数に格納する演算子。
二項演算子のひとつ。
「代入演算子」とも言う。
左オペランドを右オペランドの値に書き換える「副作用」を持つ。
「変数 = 変数」の形で、右オペランドの値を左オペランドの変数に格納する。これを「代入」という。
左オペランドの変数は書き換えられる。右オペランドの変数には変化しない。「右から左」なので注意。つまり普通の計算式の「 1 + 1 = 2 」とは逆ということである。
戻り値として格納した値を返すため、ひとつの値を複数の変数にまとめて格納することもできる。
基本的に異なる型は代入できないが、プリミティブ型同士であれば自動的に型変換されて代入できる場合もある。これを「代入変換」と言う。
またクラス同士であれば、サブクラスからスーパークラスへも代入できる。これを「ポリモーフィズム」と言う。その際、代入変換とは異なり、代入する値に変化はない。
値の代入は頻繁に行われるため、下記演算子のように「ある演算に代入機能を加えた演算子」が用意されている。
以下の、「=演算子」の前に他の演算子を組み合わせた演算子を「複合代入演算子」と言う。
・+=演算子
・-=演算子
・*=演算子
・/=演算子
・%=演算子
・&=演算子
・|=演算子
・^=演算子
・<<=演算子
・>>=演算子
・>>>=演算子
以上の演算子と比較するため、「=演算子」のことを「単純代入演算子」とも言う。
=演算子は代入を行うものである。
「一致しているかどうか」を調べる演算子は「==演算子」である。
二項演算子のひとつ。
「代入演算子」とも言う。
左オペランドを右オペランドの値に書き換える「副作用」を持つ。
「変数 = 変数」の形で、右オペランドの値を左オペランドの変数に格納する。これを「代入」という。
左オペランドの変数は書き換えられる。右オペランドの変数には変化しない。「右から左」なので注意。つまり普通の計算式の「 1 + 1 = 2 」とは逆ということである。
戻り値として格納した値を返すため、ひとつの値を複数の変数にまとめて格納することもできる。
基本的に異なる型は代入できないが、プリミティブ型同士であれば自動的に型変換されて代入できる場合もある。これを「代入変換」と言う。
またクラス同士であれば、サブクラスからスーパークラスへも代入できる。これを「ポリモーフィズム」と言う。その際、代入変換とは異なり、代入する値に変化はない。
値の代入は頻繁に行われるため、下記演算子のように「ある演算に代入機能を加えた演算子」が用意されている。
以下の、「=演算子」の前に他の演算子を組み合わせた演算子を「複合代入演算子」と言う。
・+=演算子
・-=演算子
・*=演算子
・/=演算子
・%=演算子
・&=演算子
・|=演算子
・^=演算子
・<<=演算子
・>>=演算子
・>>>=演算子
以上の演算子と比較するため、「=演算子」のことを「単純代入演算子」とも言う。
=演算子は代入を行うものである。
「一致しているかどうか」を調べる演算子は「==演算子」である。
参考サイト
- (参考サイトはありません)
// Sample.java
public class Sample
{
public static void main( String[] args )
{
int i;
// int型変数iに、「=演算子」で、整数リテラル「100」
// を値を代入します。
i = 100;
System.out.println( i );
// 100
// 代入は「右から左」に行われます。
// そのため、左オペランドにリテラルを指定すると
// コンパイルエラーになります。
// 100 = i;
// コンパイルエラー:
// The left-hand side of an assignment must be a variable
// 変数宣言時に初期化する際にも使います。
// ただし、これは厳密には「代入」と異なります。
int i2 = 200;
System.out.println( i2 );
// 200
// =演算子の「戻り値」の型は、代入した値です。
i2 = i = 300;
System.out.println( i2 );
// 300
// 型が違うと代入できません。
// i = new Integer( 100 );
// コンパイルエラー:
// 型の不一致: Integer から int には変換できません。
// プリミティブ型であれば、型によっては代入変換されます。
double d = i;
System.out.println( d );
// 300.0
}
}
public class Sample
{
public static void main( String[] args )
{
int i;
// int型変数iに、「=演算子」で、整数リテラル「100」
// を値を代入します。
i = 100;
System.out.println( i );
// 100
// 代入は「右から左」に行われます。
// そのため、左オペランドにリテラルを指定すると
// コンパイルエラーになります。
// 100 = i;
// コンパイルエラー:
// The left-hand side of an assignment must be a variable
// 変数宣言時に初期化する際にも使います。
// ただし、これは厳密には「代入」と異なります。
int i2 = 200;
System.out.println( i2 );
// 200
// =演算子の「戻り値」の型は、代入した値です。
i2 = i = 300;
System.out.println( i2 );
// 300
// 型が違うと代入できません。
// i = new Integer( 100 );
// コンパイルエラー:
// 型の不一致: Integer から int には変換できません。
// プリミティブ型であれば、型によっては代入変換されます。
double d = i;
System.out.println( d );
// 300.0
}
}
// Sample.java public class Sample { public static void main( String[] args ) { int i; // int型変数iに、「=演算子」で、整数リテラル「100」 // を値を代入します。 i = 100; System.out.println( i ); // 100 // 代入は「右から左」に行われます。 // そのため、左オペランドにリテラルを指定すると // コンパイルエラーになります。 // 100 = i; // コンパイルエラー: // The left-hand side of an assignment must be a variable // 変数宣言時に初期化する際にも使います。 // ただし、これは厳密には「代入」と異なります。 int i2 = 200; System.out.println( i2 ); // 200 // =演算子の「戻り値」の型は、代入した値です。 i2 = i = 300; System.out.println( i2 ); // 300 // 型が違うと代入できません。 // i = new Integer( 100 ); // コンパイルエラー: // 型の不一致: Integer から int には変換できません。 // プリミティブ型であれば、型によっては代入変換されます。 double d = i; System.out.println( d ); // 300.0 } }