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

【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だけでなく、プログラミングには欠かせない基本的な構文なので必ず覚えましょう!

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

    Could not retrieve HTML for embedding from https://tech-dream.school/archives/category/study/programming/lang/1106

    まずは選考会へ!

    「プログラマーになって一緒に働きませんか?」
    テックドリームの選考会は、選考だけでなく「相互理解」の場。不安なことも直接ご相談いただけます。


    電話でのご予約

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

    0120-262-242
    9:00~18:00(土日祝を除く)

     

    >テクド・リム

    テクド・リム


    「テックドリーム」の公式キャラクター。
    プログラマーだった父の影響を受けて、
    夢に向かって日々勉強に励むプログラマーのタマゴ。
    夢は「世界を変える、すごいプログラマーになること!」

    CTR IMG