| English | 意味 |
|---|---|
| assignment statement/əˈsaɪnmənt ˈsteɪtmənt/ | 代入文 |
代入文
- 代入文は値を変数に格納します:
x = 5; - 単一の
=は「等しい」ではなく「格納する」を意味します。 - Javaはまず右辺を評価し、その結果を左辺の変数に格納します。
count = count + 1;は古いcountを読み取り、1を加えて再格納します。
右から左への流れ
=を左向きの矢印だと考えると良いです:total ← price * qty。- 左側の変数は既に宣言 (型付き) されている必要があります。
- 後続の代入は古い値を上書きします。箱には最新のものしか入りません。
- 宣言と代入を1行で行うことができます:
int x = 5;
Scannerによる入力読み取り
- ユーザー入力を読む際、Javaでは**
Scanner**オブジェクトをSystem.inに紐づけて使用する。 Scanner sc = new Scanner(System.in);がそれを作成します。sc.nextInt()はintを読み取ります;sc.nextDouble()はdoubleを読み取ります;sc.next()は1つの単語を読み取ります。- 読み取った値を変数に格納します:
int age = sc.nextInt();
読み取り方法と型の一致
- 期待する型に対応する読み取りメソッドを使用します。
- 整数用
nextInt()、小数用nextDouble()、全行用nextLine()。 - 不一致 (例: 文字列 "hello" に対して
nextInt()を使用) はランタイムエラーを引き起こします。 - 正しい型の変数に読み取ると、以降のコードが正常に動作します。
= は代入であり、等価ではありません。そして右から左へ流れます。 x = x + 1 は矛盾ではありません。x + 1 を計算して x に再格納するだけです。(後に等価性をテストするには == という別の演算子を使用します。) Scanner を使う際は型に合わせてメソッドを選択します: nextInt() は整数を読み取り、非数字の読み取りはランタイムエラーを発生させます。
スコアの読み取りと更新:
int score = sc.nextInt();→scoreはユーザーが入力した数値を受け取ります。score = score + 10;→ 右辺score + 10が計算され、その後再格納されます。- ユーザーが
40を入力した場合、scoreは今や50です。
代入文 x = value; はまず右辺を評価し、左辺の変数に格納します (= は「等しい」ではなく「格納する」です)。 入力は Scanner を使用して読み取ります: nextInt(), nextDouble(), または next()/nextLine() — 期待する型に合わせてメソッドを選択します。
右辺を先に計算して格納する
各代入では右辺を評価した後、ボックスの値を上書きする。
Javaにおける単一の = 記号の意味は...
難易度 1/5 · 100 コイン + 今日初回完了時に小ボーナス付与
= は代入であり、== は等価性をテストする。
score が 40 で、score = score + 10; を実行した場合、現在の score の値は何か?
難易度 2/5 · 140 コイン + 今日初回完了時に小ボーナス付与
右辺の 40+10 = 50 が score に再び格納される。
整数を読み込むScannerメソッドはどれか?
難易度 1/5 · 100 コイン + 今日初回完了時に小ボーナス付与
nextInt()はintを、nextDouble()は小数点を伴う数値を読み込む。
Javaは代入の左辺への格納前に右辺を評価する。
難易度 1/5 · 100 コイン + 今日初回完了時に小ボーナス付与
右辺を先に計算して格納する — これが x = x + 1 の動作原理である。
ユーザーが 'hello' と入力した際に nextInt() を呼び出すと実行時エラーが発生する。
難易度 1/5 · 100 コイン + 今日初回完了時に小ボーナス付与
このメソッドはintを期待しているが、テキストとの一致がないためである。