Javaの基礎の第四弾!
過去の投稿をみていない方は、ぜひそちらからご覧ください。



javaで「 = 」を二個書くのはどんなとき?
Javaで「イコールを二個(==)」書く理由は、値の比較と代入の区別のためです。
=(イコール1個)
- 代入を意味します。
- 右側の値を左側の変数に「入れる」操作です。
int a = 5; // 5をaに代入==(イコール2個)
- 比較を意味します。
- 左右の値が等しいかどうかを調べる演算子です。
- 結果は
true(等しい)かfalse(等しくない)になります。
int a = 5;
if (a == 5) { // aの値が5かどうかを比較
System.out.println("aは5です");
}補足
文字列(String)を比較するときは == ではなく .equals() を使います。
例では直接文字列を比較していますが、変数に代入された文字列を比較するときにも使用できます。
String s = "hello";
if (s.equals("hello")) {
System.out.println("文字列が一致");
}変数や関数の有効範囲 「スコープ」
ローカルスコープ(Local Scope)
- あるブロック(例えば関数や
{ }の中)でだけ有効。 - ブロックの外では使えない。
void example() {
int x = 10; // xはこの関数内だけ有効
System.out.println(x);
}
System.out.println(x); // エラー!xはここでは見えないブロックスコープ
{ }で囲まれた範囲で有効。- ローカル変数はブロックを出ると消える。
{
int z = 30;
System.out.println(z); // 30
}
System.out.println(z); // エラー!zはブロック外では無効
Amiコンパイルエラーでよく見かける「シンボルが見つかりません」が出た時には、まずスコープを疑うのは非常に有効です!
下記のポイントを中心に見返してみてください。
・インポートやライブラリ参照の確認
・スコープを確認(その変数・メソッドは今アクセス可能か?)
・スペルを確認
・宣言の有無を確認
些細なことではありますが、エラーが起きた際に、書き方を間違えた!と焦っていろんなサイトを未漁るよりも先に、単純なスペルミスをしていないかチェックしてみてください!
何分か間違いが見つからずに困っていたけれど、「 ; 」を忘れていただけ、、なんてことは全然あり得ます笑
switchって便利!
if文を覚えると、実現できるプログラムが一気に増えて嬉しくなりますよね!
しかし、同じようなif文が何度も続いてしまう…そんなことはありませんか?
そんなときに役立つのが switch 文です。
if文だらけのソースコードが、どのように短くスッキリ書けるのか見てみましょう。
冗長な if-else の例
int month = 4;
if (month == 1) {
System.out.println("January");
} else if (month == 2) {
System.out.println("February");
} else if (month == 3) {
System.out.println("March");
} else if (month == 4) {
System.out.println("April");
} else if (month == 5) {
System.out.println("May");
} else if (month == 6) {
System.out.println("June");
} else if (month == 7) {
System.out.println("July");
} else if (month == 8) {
System.out.println("August");
} else if (month == 9) {
System.out.println("September");
} else if (month == 10) {
System.out.println("October");
} else if (month == 11) {
System.out.println("November");
} else if (month == 12) {
System.out.println("December");
} else {
System.out.println("Invalid month");
}何月なのかを出力したいソースコードというは分かりますが、、長くて見づらいですよね。
switch を使ったスッキリ版
比較対象が同じ変数の場合に switch は特に有効なので、if文が2,3個の時は、あまり効果を感じられないかもしれませんが、覚えていて損はありません!
int month = 4;
switch (month) {
case 1: System.out.println("January"); break;
case 2: System.out.println("February"); break;
case 3: System.out.println("March"); break;
case 4: System.out.println("April"); break;
case 5: System.out.println("May"); break;
case 6: System.out.println("June"); break;
case 7: System.out.println("July"); break;
case 8: System.out.println("August"); break;
case 9: System.out.println("September"); break;
case 10: System.out.println("October"); break;
case 11: System.out.println("November"); break;
case 12: System.out.println("December"); break;
default: System.out.println("Invalid month");
}どの値に対しての処理なのかが一気にわかりやすくなりましたね!
if文がとても便利なので、意識しないとif文ばかりになってしまう…ということが最初よくありました。
何をしたいコードなのか?あとで追加したい時にやりやすくするには?可読性を上げるには?
様々なことを考えながら作るとより良いコードになっていきます。
まとめ
switch 文は、最初に対象となる変数や式を指定し、case ラベルに対応する値を書き、それぞれの値に応じた処理を記述する構文です。
複数の値に該当しない場合は default で処理を指定できます。
for文を使った繰り返し処理
- for 文は「初期化 → 条件チェック → 処理 → 更新」を繰り返す構造
- 回数が決まっている繰り返し処理に適している
for (int i = 1; i <= 5; i++) {
System.out.println(i);
}int i = 1ループ用の変数 i を定義し、1からスタートする
この変数を使って何回ループの仕方や、処理対象の番号を管理する
i <= 5ループの条件「i が 5 以下の間、処理を繰り返す」という意味
i++ループが1回終わるたびに i を1増やす( i = i + 1 と同じ )
System.out.println(i);ループ内で実行される処理
現在の i の値を出力する
break と continue
ループの処理を制御ですが、それぞれ役割が違います。
break
- ループを完全に終了させる
- その時点でループから抜け、ループの後の処理に進む
// i == 3 のときにループを抜けるので、3以降は出力されない
for (int i = 1; i <= 5; i++) {
if (i == 3) {
break; // i が 3 になったらループ終了
}
System.out.println(i); // 2
}continue
- ループの次の回にスキップして進む
- それ以降の処理はその回では実行されず、次の繰り返しへ
// i == 3 のときは出力をスキップするが、ループは続く
for (int i = 1; i <= 5; i++) {
if (i == 3) {
continue; // iが 3 のときはスキップ
}
System.out.println(i); //2 4 5が改行しながら出力
}まとめ
第一弾から4回に渡り、基礎をまとめてきました。
覚えておいた方がたくさんあって大変…と私も思っていましたが、暗記をするというよりは理解するということに重きを置いて、とにかくソースを見て、書いて、動かして、数をこなしていくことが1番の近道だと思います。
ルールを守れば正しく動いてくれるので、動かない時は、何かのルールを無視しているから。
本当に些細な間違いに気づくためにも、if文を書く時には、if () {}までは最初に書く。など自分の中で決めておくのもおすすめです。



