変数に値を代入する 代入演算子「=」 - 萌えJava超入門
第四章 変数・リテラル・データ型

変数に値を代入する

変数に値を代入します。
代入には、代入演算子「=」を使います。
左辺は必ず変数でなければいけません。

int x = 3;


目次


1. 代入演算子「=」

ここまでフツーに「=」を使ってきたが、
ここでしっかり説明しておきたい。
重要
 「=」を代入演算子といいます。
 「=」の左辺に右辺を代入します。
 左辺は必ず変数でなければいけません。

代入演算子「=」
img_01

書式 代入
変数名 = 値;

//Sample15_03.java
class Sample15_03 {
    public static void main(String[] args){
        int x;
        x = 3;  //代入
        System.out.println("x = "+x);  //参照
    }
}

コマンドライン
>javac Sample15_03.java
>java Sample15_03
x = 3




書式
変数のデータ型と同じデータ型の値を代入できます。
変数に代入できるデータ型の詳細は、以下で説明します。
  第七章 基本データ型の型変換
   型変換の基本

intの変数を宣言したので、intの値が代入できます。
「3」 は intの値なので代入できました。
「3」は
intのリテラルだから
ってこと?
お!
そうそう、
そうゆうことだ!



この書き方もよく使われます。
書式 変数の宣言と同時に代入
 データ型 変数名 = 値;

  int x = 3; //変数の宣言と同時に代入




2. 代入できない例

一見代入できそうでも、変数とリテラルが一致していないとNGです。

代入できない例
 int i = 28.0;   //エラー: 不適合な型
 char ch = "A";  //エラー: 不適合な型
 char ch = '';   //エラー: 空の文字リテラルです

"A" は
1文字の文字列
ってことか。
ちなみに、
文字列は文字長さ 0(空文字)でもOKだが、
文字は、必ず1文字必要だ。


3. 代入は上書き


書式
値の入った変数に代入すると上書きされます。

前の値は無くなってしまいますのでご注意下さい。
たくさんの変数を宣言するより、1つの変数を使いまわした方がわかりやすい場合もあります。

//Sample15_04.java
class Sample15_04 {
    public static void main(String[] args){
        int x;  //宣言
        x = 100;  //代入
        System.out.println("x= "+x);
        x = 200;  //代入(上書き)
        System.out.println("x= "+x);
        x = 300;  //代入(上書き)
        System.out.println("x= "+x);
    }
}

コマンドライン
>javac Sample15_04.java
>java Sample15_04
x= 100
x= 200
x= 300



4. x=x+1; じゃ変ですか?

x = x+1;

重要
「=」には、「左辺と右辺が同じ」という意味はありません。

「=」には「左辺に代入」という意味しかない。
左辺の「x」に、右辺の「x+1」が代入される。
つまり「x」の値が 1つ増えるということだな。
//Sample15_05.java
class Sample15_05 {
    public static void main(String[] args){
        int x = 1;
        System.out.println("x= "+x);
        x = x+1;
        System.out.println("x= "+x);
        x = x+1;
        System.out.println("x= "+x);
    }
}

コマンドライン
>javac Sample15_05.java
>java Sample15_05
x= 1
x= 2
x= 3



5. 類似品注意

==

関係演算子「==」は、「左辺と右辺が同じ」という意味です。
Javaでは、「代入」と「比較」を別の記号で切り分けています。

類似品注意 関係演算子「==」
img_02

知ってさえいれば
問題なさそうね。


お疲れ様でした。


© 2019 awasekagami