この記事で学べること

  • if文を使った条件分岐の基本
  • 比較演算子(==, !=, >, <など)で条件を作る方法
  • 論理演算子(&&, ||, !)で複雑な条件を作る方法
  • if文を使った実践的なプログラム例

はじめに – 今日やること

前回の振り返りです!

前回は、変数でデータを保存して、それを再利用する仕組みを学びました。

エンジニアは、この変数を使って開発を進めていきます。

プログラミング学習でよくあるのが、こんなパターンです:

  • 知識だけ増やして、実際には使わなくなってしまう
  • 「わかったけど、これって実務で使っていいの?」という不安で、使わなくなってしまう

安心してください!

これから学ぶものは、すべて実務でよく使われているので、皆さんもどんどん使っていきましょう!

今日のテーマは、プログラムに「判断する力」を与えることができる「if文」という構文についてです。

今日のゴール

  • if文を使って、条件によってプログラムの動きを変えられる
  • 比較演算子で条件を作れる
  • 複数の条件を組み合わせられる

if文って何? なぜ必要?

if文とは

if文とは、「もし〜なら」という判断をプログラムに与えるものです。

これをプログラミングで使うと、「もしある条件を満たしたなら、この処理を行う」ということが可能になります。

これを条件分岐と言います。

日常の例で理解しよう

私たちは、日常生活で無意識に「もし〜なら」を使っています。

例えば:

  • 信号が青なら進む、赤なら止まる
  • 天気が雨なら傘を持つ、晴れなら持たない
  • お腹が空いたなら食べる、空いてないなら食べない

このように、ある条件に当てはまったら、その行動を行うというのが「もし〜なら」の考え方です。

プログラムでも同じ!

プログラムでも、条件によって動作を変えることができます。

例えば、信号機のプログラムなら:

もし信号が青なら
    → 進む
そうでなければ
    → 止まる

このように、if文を使うと、状況に応じてプログラムの動きを変えられます!

if文がないと、どうなる?

if文があって初めて、プログラムは「この時はこうする」という判断ができます。

もしif文がないと、どんな状況でも毎回同じことしかできません。

例えば、信号機のプログラムにif文がないと…

「信号が青でも赤でも、いつも進んでしまう車」

想像してみてください。非常に危険ですよね…!

だからこそ、if文はプログラミングに欠かせないんです。

if文の基本 – 書き方と使い方

それでは、実際にif文の書き方を学んでいきましょう!

if文の書き方

if文は、このように書きます。

書き方:

if (条件) {
    // 条件が正しい時に実行される処理
}

この条件には、「信号が赤なら」や「数値が18以上なら」といったことを書きます。

条件が正しい(true)になった場合、{}の中が実行されます。

ポイント

  • 条件は ()の中に書きます
  • 条件が正しい時に実行したい処理を {}の中に書きます
  • 条件は「比較演算子」というものを使って書きます。これは次の章で詳しく説明するので、今は「年齢が18以上」のような条件が書けるんだな、と理解してください!
  • {}(波カッコ)は忘れずに書きましょう!

実際のコード例:

int age = 20;
if (age >= 18) {
    System.out.println("成人です");
}

この例では、ageが18以上なので、「成人です」と表示されます。

else(そうでなければ)の書き方

if文は、elseとセットで使うことが多いです。(必須ではありませんが、セットで使うとわかりやすくなります)

elseとは、「そうでなければ」を意味しています。

ifが「もし〜なら」、elseが「そうでなければ」を表現できます。

例えば:

もし信号が赤なら → 止まる
そうでなければ   → 進む

このように、2つの選択肢を表現できます!

書き方:

if (条件) {
    // 条件が正しい時
} else {
    // 条件が正しくない時
}

これで「そうでなければ」を表現することができます!

実際のコード例:

int age = 15;
if (age >= 18) {
    System.out.println("成人です");
} else {
    System.out.println("未成年です");
}

この例では、ageが15なので、18以上ではありません。そのため、elseの中の「未成年です」と表示されます。

else if(複数の条件)の書き方

if〜else以外に、else ifというものがあります。

先ほどまでは、ifとelseの2択でした。でも、3つ、4つ、5つと条件を増やしたい時もあります。

例えば、「赤なら」「黄色なら」「青なら」など、3つ以上の選択肢がある場合に使えるのが、else ifです。

書き方:

if (条件1) {
    // 条件1が正しい時
} else if (条件2) {
    // 条件2が正しい時
} else {
    // どの条件も正しくない時
}

elseには条件を書きませんでしたが、else ifには条件が必要です。

そのため、elseは「ifとelse ifのどちらにも当てはまらない場合」に実行されます。

実際のコード例:

int score = 75;
if (score >= 80) {
    System.out.println("優秀です");
} else if (score >= 60) {
    System.out.println("合格です");
} else {
    System.out.println("不合格です");
}

この例では:

  • scoreが75なので、80以上ではない → 最初のifはスキップ
  • scoreが75なので、60以上である → else ifが実行されて「合格です」と表示

という流れになります!

if文は、これで全てです!

if文の書き方は、この3種類だけです:

  1. if文: 条件が正しい時だけ処理
  2. else文: そうでなければの処理
  3. else if文: 複数の条件を追加

これだけです!

この3つと、次の章で学ぶ「比較演算子」を使えば、どんな条件分岐でも書けるようになります。

まずは、この3つの書き方を覚えましょう!

次の章で、比較演算子を学んで、もっといろんな条件を書けるようにしていきます!

比較演算子を理解しよう

前の章で「条件」と言っていたものが、この比較演算子を使って書けるようになります!

比較演算子とは

比較演算子とは、2つの値を比べるための記号です。

この演算子を使うと、「等しい」「大きい」「小さい」などの条件を作ることができます。

例えば:

  • 年齢が18以上か?
  • 点数が60より大きいか?
  • 名前が「太郎」と等しいか?

こういった条件を、比較演算子で書きます!

比較演算子一覧

では、どんな比較演算子があるのか見てみましょう。

演算子意味結果
==等しい5 == 5true
!=等しくない5 != 3true
>より大きい5 > 3true
<より小さい5 < 3false
>=以上5 >= 5true
<=以下5 <= 3false

結果がtrue(正しい)なら、if文の中が実行されます。

結果がfalse(正しくない)なら、if文の中はスキップされます。

実際に使ってみよう

では、実際にif文と組み合わせて使ってみましょう!

例1: 大きさを比較

int a = 10;
int b = 5;

if (a > b) {
    System.out.println("aの方が大きい");
}

実行結果:

aの方が大きい

a(10)b(5)より大きいので、if文の中が実行されます!

例2: 等しくないか比較

int a = 10;
int b = 5;

if (a != b) {
    System.out.println("aとbは違う値です");
}

実行結果:

aとbは違う値です

abは違う値なので、if文の中が実行されます!

例3: 年齢を判定

int age = 20;

if (age >= 18) {
    System.out.println("成人です");
}

実行結果:

成人です

age(20)は18以上なので、if文の中が実行されます!

⚠️ 重要な注意点

比較演算子を使う時に、初心者がよくハマるポイントが2つあります。

注意点1: 「==」と「=」を間違えやすい!

これ、本当によくある間違いなんです…!

=は「代入」、==は「比較」です。

見た目が似ているので、つい間違えてしまいます。

間違った例:

if (age = 18) { 処理 } ←これは代入になってしまいます。

これだと、「ageに18を代入する」という意味になってしまい、エラーが出ます。

正しい例:

if (age == 18) { 処理 } ←これが比較です!

==(イコール2つ)で比較します。

慣れるまでは、意識して確認しましょう!

注意点2: 文字列の比較は特別

数値の比較は==でOKですが、文字列は.equals()を使います。

これだとうまく動きません:

String name = "太郎";
if (name == "太郎") { 
    // 動かない...
}

こう書きます:

String name = "太郎";
if (name.equals("太郎")) { 
    // これで動く!
}

なぜ文字列だけ特別なのかは、少し難しい話なので後で説明します。

今は『文字列は.equals()』と覚えてしまいましょう!

論理演算子で複雑な条件を作ろう

比較演算子だけでは、1つの条件しか書けません。

でも、実際のプログラムでは「18歳以上で、かつ免許を持っている」のように、2つ以上の条件を同時にチェックしたい時があります。

そんな時に使うのが、論理演算子です!

論理演算子とは

論理演算子とは、「かつ」や「または」を表現できる演算子です。

これを使うと、複数の条件を組み合わせることができます!

論理演算子一覧

Javaで使える論理演算子は、この3つです。

演算子意味結果
&&かつ(AND)true && truetrue
||または(OR)true || falsetrue
!否定(NOT)!truefalse

それぞれの意味を見ていきましょう!

&&(かつ) – 両方とも正しい時だけ

&&は、両方の条件が正しい時だけ、全体がtrueになります。

日常の例:

  • 「18歳以上 かつ 免許を持っている」→ 両方を満たさないとダメ

コード例:

int age = 25;
boolean hasLicense = true;

if (age >= 18 && hasLicense) {
    System.out.println("運転できます");
}

実行結果:

運転できます

この例では:

  • age >= 18 → true(25は18以上)
  • hasLicense → true(免許を持っている)
  • 両方ともtrueなので、if文の中が実行されます!

もし、どちらか一方でもfalseなら、if文の中は実行されません。

||(または) – どちらか一方が正しければOK

||は、どちらか一方が正しければ、全体がtrueになります。

日常の例:

  • 「雨が降っている または 寒い」→ どちらか一方でも当てはまればOK

コード例:

int age = 15;
boolean hasLicense = false;

if (age < 18 || !hasLicense) {
    System.out.println("運転できません");
}

実行結果:運転できません

この例では:

  • age < 18 → true(15は18未満)
  • !hasLicense → true(免許を持っていない)
  • どちらか一方がtrue(実際は両方true)なので、if文の中が実行されます!

!(否定) – 正しいと間違いを反転させる

!は、trueをfalseに、falseをtrueに反転させます。

日常の例:

  • 「免許を持っている」の否定 → 「免許を持っていない」

コード例:

boolean hasLicense = false;

if (!hasLicense) {
    System.out.println("免許を持っていません");
}

実行結果:免許を持っていません

この例では:

  • hasLicense → false
  • !hasLicensetrue(falseを反転)
  • trueなので、if文の中が実行されます!

組み合わせて使うこともできる

複数の論理演算子を組み合わせることもできます!

コード例:

int age = 20;
boolean hasLicense = true;
boolean hasInsurance = false;

if ((age >= 18 && hasLicense) && hasInsurance) {
    System.out.println("運転できます");
} else {
    System.out.println("保険に入っていないので運転できません");
}

この例では、「18歳以上」「免許を持っている」「保険に入っている」の3つ全てが必要です。

ちょっと複雑ですが、慣れると便利ですよ!

これで、論理演算子の基本がわかりましたね。

次は、実際にif文を使ったプログラムを作ってみましょう!

実践:if文を使ったプログラムを作ろう

ここまで学んだif文、比較演算子、論理演算子を使って、実際にプログラムを作ってみましょう!

例1: 成績判定プログラム

点数に応じて、評価を表示するプログラムです。

コード:

int score = 75;

if (score >= 90) {
    System.out.println("A評価:優秀です!");
} else if (score >= 80) {
    System.out.println("B評価:良好です");
} else if (score >= 60) {
    System.out.println("C評価:合格です");
} else {
    System.out.println("D評価:不合格です");
}

実行結果:C評価:合格です

このプログラムの流れ:

  1. scoreが75なので、90以上ではない → 最初のifはスキップ
  2. 80以上でもない → 最初のelse ifもスキップ
  3. 60以上である → 2番目のelse ifが実行されて「C評価:合格です」と表示

ポイント:

条件は上から順番にチェックされます。

だから、大きい値から順に判定するのが重要です!

もし順番を間違えると、正しく動きません。

例2: ログイン判定プログラム

IDとパスワードが正しいかチェックするプログラムです。

ここでは、文字列の比較(.equals())論理演算子(&&)を使います!

コード:

String inputId = “admin”;
String inputPassword = “1234”;
String correctId = “admin”;
String correctPassword = “1234”;

if (inputId.equals(correctId) && inputPassword.equals(correctPassword)) {
System.out.println(“ログイン成功!”);
} else {
System.out.println(“IDまたはパスワードが間違っています”);
}

実行結果:ログイン成功!

このプログラムの流れ:

  1. inputId.equals(correctId) → true(IDが一致)
  2. inputPassword.equals(correctPassword) → true(パスワードが一致)
  3. 両方ともtrueなので、「ログイン成功!」と表示

もし、IDかパスワードのどちらかが間違っていたら、elseの「IDまたはパスワードが間違っています」が表示されます。

ポイント:

  • 文字列の比較は.equals()を使う
  • 2つの条件を同時にチェックするには&&(かつ)を使う

自分でも試してみよう!

では、これらのプログラムを自分でカスタマイズしてみましょう!

試してみること:

  • 成績判定プログラムのscoreを変えて、結果がどう変わるか確認
  • 評価基準を変えてみる(例: 90点以上をS評価にする)
  • ログイン判定プログラムのIDやパスワードを変えて、失敗パターンも試す
  • 新しい条件を追加してみる

何度も書いて、実験してみてください!

失敗しても大丈夫。何度でもやり直せます。

次は、よくあるエラーと注意点を見ていきましょう!

よくあるエラーと注意点

if文を使っていると、エラーが出ることはよくあります。

ここでは、初心者がよくハマるポイントを紹介します!

自分が同じミスをしていないか、確認してみてください。

エラー1: 「==」と「=」を間違える

これ、本当によくあるミスです…!

間違った例:

if (age = 18) { // これは代入になっちゃう!
}

これだと、「ageに18を代入する」という意味になってしまい、エラーが出ます。

エラーメッセージ:

error: incompatible types: int cannot be converted to boolean

正しい例:

if (age == 18) { // これが比較!
}

==(イコール2つ)で比較します。

見た目が似ているので、コードを書いたら必ず確認しましょう!

エラー2: 波カッコ{}を忘れる

{}を省略することもできますが、おすすめしません。

省略した例:

if (age >= 18)
    System.out.println("成人です");
    System.out.println("これは常に実行される"); // 実はif文の外!

実行結果:

成人です
これは常に実行される

一見、2行ともif文の中に見えますが、実際は1行目だけです。

2行目は、ageの値に関係なく、常に実行されます。

これがバグの原因になることが多いです…

正しい例:

if (age >= 18) {
    System.out.println("成人です");
    System.out.println("これもif文の中");
}

{}を書く癖をつけましょう!

エラー3: 文字列の比較で==を使ってしまう

数値の比較は==でOKですが、文字列は.equals()を使います。

うまく動かない例:

String name = "太郎";
if (name == "太郎") { 
    System.out.println("太郎さんです"); // 表示されないことがある
}

これだと、期待通りに動かないことがあります。

正しい例:

String name = "太郎";
if (name.equals("太郎")) { 
    System.out.println("太郎さんです"); // これで動く!
}

理由は少し複雑なので、今は「文字列は.equals()」と覚えておきましょう!

エラー4: 条件の順序を間違える

else ifを使う時、条件の順序がとても重要です!

問題がある例:

if (score >= 60) {
    System.out.println("合格");
} else if (score >= 80) {
    System.out.println("優秀"); // ここには絶対に来ない!
}

scoreが85の場合を考えてみましょう:

  1. score >= 60 → true(85は60以上)
  2. 「合格」と表示
  3. ここで終了! else ifはチェックされない

つまり、80点以上でも「合格」と表示されてしまいます。

正しい例(大きい方から判定):

if (score >= 80) {
    System.out.println("優秀");
} else if (score >= 60) {
    System.out.println("合格");
}

条件は上から順番にチェックされるので、大きい値から書きましょう!

これらのエラーに気をつければ、if文は怖くありません!

次に学ぶべきこと

長い間、お疲れ様でした!

今日は、if文と条件分岐を学びましたね。

今日学んだこと

  • if文の基本的な書き方(if, else, else if)
  • 比較演算子で条件を作る方法
  • 論理演算子で複雑な条件を作る方法
  • if文を使った実践的なプログラム

これで、いろんなプログラムが作れるようになりました!

これから何をすべきか

これからは、たくさん書いて動かすことが一番の勉強です!

自分で条件を変えたり、新しいプログラムを作ったりして、どんどん実験してみてください。

失敗しても大丈夫。何度でもやり直せます。

この2つが、プログラミングの核心です

前回の「変数(データ)」と、今回の「if文」。

この2つで、プログラミングの基礎が完成しました!

この2つがあれば、どんなプログラムでも書くことができます。(大変ではありますが)

実は、これから学ぶこと(繰り返し、関数、クラスなど)は、すべて「僕たちが楽をするために作られた仕組み」なんです。

でも、この2つ(変数とif文)は、絶対に欠かせない土台です。

よく頑張りましたね!

次のステップ: 繰り返しを学ぼう

次は、繰り返し(for文、while文)を学んでいきます!

繰り返しを学ぶと:

  • 同じ処理を何度も実行できる(例: 1から100まで表示)
  • 大量のデータを効率的に処理できる
  • もっと複雑なプログラムが作れる

これを使うと、僕たちがもっと楽にプログラムを作れるようになります!

焦らず、一緒に頑張りましょう!

まとめ

お疲れ様でした! 今日学んだことを振り返ってみましょう。

今日のポイント

✅ if文は「もし〜なら」という条件分岐

✅ if, else, else ifで複数の条件に対応できる

✅ 比較演算子(==, !=, >, <など)で条件を作る

✅ 論理演算子(&&, ||, !)で複雑な条件を作る

✅ 文字列の比較は.equals()を使う

今日、あなたはプログラムに「判断する力」を与えることができるようになりました!

前回の「変数(データ)」と、今回の「if文」で、プログラミングの基礎が完成しましたね。

この調子で、次のステップに進みましょう!

次に読むべき記事

次は、繰り返し処理を学んで、同じ処理を何度も実行できるようにしましょう!

前回・関連記事

質問や感想をお待ちしています!

この記事でわからなかったことや、つまずいたポイントがあれば、お気軽にコメント欄やお問い合わせフォームからご連絡ください!

また、「if文がわかりました!」の報告も大歓迎です。一緒に喜びたいです!

それでは、次の記事でお会いしましょう!