【Java】分岐とは?if文・switch文の書き方【未経験者向け】

この記事では、テックドリームの講師がプログラミングについて、未経験の方にも分かりやすくご紹介いたします!

今回はJavaにおいての「分岐」とは何か、書き方など具体例を踏まえながら解説します。

分岐とは

プログラミングにおいての分岐とは、条件によって実行する処理が分かれることです。

言葉だけで聞くと少し難しく感じますが、一言で説明すると質問に対して「Yes」か「No」かで回答するのと同じです。

この記事ではJavaの分岐について紹介しますが、決してプログラミングに限った話ではなく、みなさんの日常にも何気なく、当たり前に存在している考え方なのです。

if文とは

if文とは、処理を条件で分岐するものです。
プログラムは必ず上から下に1行ずつ処理されていきますが、条件を満たした時にだけ行う処理を書くことができます。
if文の構文は大きく分けて3つありますので、それぞれ解説します。

ifのみ構文

if文は、条件がtrue(条件を満たしている状態)だった場合に、ブロック内({ と } の間)の処理を実行します。
false(条件を満たしていない状態)の場合には、ブロック内の処理は実行されずブロックの次の処理に移ります。

if (num == 0) {
  System.out.println("numが0のときだけこの処理が実行されます。");
}

上記の例の場合、変数numの値が0の場合だけ、2行目の処理が実行されますが、0でない場合は2行目の処理は実行されません。

if-else構文

if – else構文では、条件がtrueの場合とfalseの場合で、異なる処理を行います。

if (num == 0) {
  System.out.println("numが0のときだけこの処理が実行されます。");
} else {
  System.out.println("numが0以外のときはこちらの処理が実行されます。");
}

if分の()内が、条件を満たす(true)のときは2行目が実行され、4行目は実行されません。
条件を満たさない(false)のときは2行目は実行されず、4行目が実行されます。

if-else if-else構文

if – else if – else構文では複数の条件に応じた処理の分岐を作ることが出来ます。
else ifの条件はいくつでも設定できます。

if (num == 0) {
  System.out.println("numが0のときだけこの処理が実行されます。");
} else if (num == 1) {
  System.out.println("numが1のときだけこの処理が実行されます。");
} else {
  System.out.println("numが0でも1でもないときにこの処理が実行されます。");
}

上記の例は3つ処理を分岐しています。

else ifをいくつでも設定できるため、3つ以上の条件に分けることができます。

また、最後のelseは省略可能です。ただし省略すると、どの条件にも当てはまらなかった場合、コードの中で実行される処理が存在しないことになります。

switch文とは

switch文はif文と同様に、条件によって処理をコントロールすることが出来ます。

switch (num) {
  case 1
    System.out.println("numの値は1です。");
    break;
  case 2:
    System.out.println("numの値は2です。");
    break;
  case 3:
    System.out.println("numの値は3です。");
    break;
  default:
    System.out.println("numの値は1~3ではありません。");
    break;
}

switch文では、switch文内の式が「case:」の後ろの値と一致すれば、その後の文から「break」までの処理を実行します。
どの値にも当てはまらなければ、「default:」の後の処理を実行します。これは、if文での最後のelseと同じです。

値の制限

switchの条件は以下のデータ型でのみ使用できます。

  • 整数(byte型, short型, int型)
  • 文字(char型, Stirng型)
  • 列挙型(enum)

long型や浮動小数点数(float型, double型)は使用することはできません。

breakの省略(フォールスルー)

breakを省略すると、その次にある「case」に処理の流れがそのまま移ります。
この書き方をフォールスルー(fall through)といい、プログラミングのアンチパターンのため注意が必要です。
アンチパターン(anti-pattern)とは、問題に対して良くない解決策の典型例であることを意味します。

breakの記述を忘れて意図せずフォールスルーになってしまったり、制御の流れが把握しづらくバグの原因となることもあります。
わざと複数の「case」内の処理を実行させたいとき以外は、breakを記述することを忘れないようにしましょう。


int fruit = 1;
switch (fruit) {
  case 1:
    System.out.println("いちご");
    // break省略
  case 2:
    System.out.println("りんご");
    break;
  case 3:
    System.out.println("みかん");
    break;
  default:
    System.out.println("ぶどう");
    break;
}

実行結果

いちご
りんご

まとめ

条件分岐はJavaだけでなく、プログラミングには欠かせない基本的な構文なので必ず覚えましょう!

次は、ループについて紹介します。

関連記事

この記事では、テックドリームの講師がプログラミングについて、未経験の方にも分かりやすくご紹介いたします! 今回はJavaにおいての「ループ」とは何か、書き方など具体例を踏まえながら解説します。 ループとは ループとは、指定された回数分[…]

当スクールは無料のプログラミングスクールです。6ヶ月以上の学習期間が設けられており、未経験者でも安心してじっくり学べます。さらに、卒業後の就職、転職活動は不要です。運営企業のメディアファイブが正社員のITエンジニアとして採用します。ご興味のある方は、無料説明会・体験セミナーをぜひご予約ください。

まずは無料説明会・体験セミナー

テックドリームは無料のプログラミングスクールです。「プログラマってどういう仕事?」「自分にできるのかな?」という方も、まずは体験セミナーでプログラミングに触れてみませんか?テックドリームは未経験の方を丁寧にサポートする体制をご用意しています。不安なことや、入校までの疑問点なども気軽にご相談いただけます。

Webかんたん予約

専用の予約フォームより、およそ60秒で簡単にお申込みいただけます。

電話でのご予約

Webかんたん予約ができない場合や、ご質問がございましたら、お気軽にお電話ください。

0120-262-242
9:00~18:00(土日祝を除く)
最新情報をチェックしよう!
>未経験者向け無料プログラミングスクール

未経験者向け無料プログラミングスクール

アキバ・テックドリーム・アカデミー(テクドリ)は無料のプログラミングスクールです。
知識ゼロの未経験者でも6か月の研修を現役エンジニアの講師がサポートします。
スクール卒業後は、運営企業のメディアファイブに正社員登用!
秋葉原本校、福岡校にて無料体験セミナー実施中です。

CTR IMG