プログラミング言語

【Java入門④】条件分岐 ~初心者でも安心!基礎から学べるプログラミング講座~

プログラミング言語

※前回の講座がまだの人はこちらから
【Java入門③】演算子 ~初心者でも安心!基礎から学べるプログラミング講座~

条件分岐とは

条件分岐の考え方

皆さんは目標に向けて計画を立てるとき、いくつかの方法を考ることはありませんか?

「雨だったら家でゲームだけど晴れなら外でサッカーかな」
「ゆっくり歩きたいけど時間がなかったら早歩きだ」

この様に条件に応じて行動を変えることを、プログラムでは条件分岐と言います。

条件分岐の使い方

条件分岐には複数の構文が存在するので、順番に紹介していきます。

if文

if文とは、ある条件の判定結果に応じて、処理の流れを2つに分岐する文です。
if文の使用例を以下に書きます。

import java.util.Scanner;

public class StatementIf {
  public static void main(String args[]) {
    Scanner numIn = new Scanner(System.in);
    System.out.println("数字を入力してください");

    int x = numIn.nextInt();

    //ここから条件分岐
    if(x < 0) {
      System.out.println("xの値は負です。");
    } else if(x == 0) {
      System.out.println("xの値は0です。");
    } else if(x > 0 && (x % 2 == 0)) {
      System.out.println("xの値は正で偶数です。");
    } else {
      System.out.println("xの値は正で奇数です。");
    }
  }
}

<実行結果>

この処理を日本語に置き換えると

もし、xが0より小さい場合
「xの値は負です。」と表示する
もし、xが0の場合
「xの値は0です。」と表示する
もし、「xが0より大きい」かつ「2で割った時の余りが0」の場合
「xの値は正で偶数です。」と表示する
それ以外の場合
「xの値は正で奇数です。」と表示する

となります。図に表すと、以下の様になります。

switch文

ある条件に応じて、処理の流れを複数に分岐する文です。
switch文の使用例を以下に書きます。

import java.util.Scanner;

public class StatementSwitch {
  public static void main(String args[]) {
    Scanner numIn = new Scanner(System.in);
    System.out.println("数字を入力してください");

    int x = numIn.nextInt();

    //ここから条件分岐
    switch (x) {
      case 0: //xの値が0の時
        System.out.println("xの値は0です。");
        break;
      case 1: //xの値が1の時
        System.out.println("xの値は1です。");
        break;
      case 2: //xの値が2の時
        System.out.println("xの値は2です。");
        break;
      default: //それ以外の時
        System.out.println("xの値は正か負です。");
    }
  }
}

<実行結果>

この処理を日本語に置き換えると

xが0の場合
「xの値は0です。」と表示する
xが1の場合
「xの値は1です。」と表示する
xが2の場合
「xの値は2です。」と表示する
それ以外の場合
「xの値は正か負です。」と表示する

となります。 図に表すと、以下の様になります。

条件の作成

比較演算子

条件を作成する為に、変数と値の比較や変数同士の比較を行う必要があります。
その比較を行う際に用いる演算子のことを比較演算子と言います。

比較演算子真(true)となる条件
==x == yxとyが等しい時
!=x != yxとyが等しくない時
<x < yxがyより小さい時
>x > yxがyより大きい時
<=x <= yxがy以下の時
>=x >= yxがy以上の時
!!xxが偽(false)の時

論理演算子

一つの条件式で複数の条件を見ることはできません。
「xは3より大きく、9以下である」という条件を作る場合、「3 < x <= 9」と書くことはできず、「3 < x」と「x <= 9」に分けて、組み合わせる必要があります。
この様に、複数の条件を組み合わせたい場合、論理演算子を用います。

論理演算子真(true)となる条件
&&x && yxとy双方が真(true)の時
||x || yxとyどちらか一方が真(true)の時

文字列の比較

文字列の比較を行いたい場合、以下の様に比較演算子を用いて、プログラムを実装するかと思います。

public class Ex {
  public static void main(String args[]) {
    String str1 = "ほげー";
    String str2 = "ほげー"; 
    str1 = str1 + "!";
    str2 = str2 + "!";

    if(str1 == str2) {
      System.out.println("文字列は同じです。");
    } else {
      System.out.println("文字列は異なります。");  
    }
  }
}

しかしながら、このコードは正しく比較が行われない場合があります。

<実行結果>

文字列の比較を行いたい場合、.equals()を使用してあげることで、文字列を正しく比較することができます。

public class Ex {
  public static void main(String args[]) {
    String str1 = "ほげー";
    String str2 = "ほげー";
    str1 = str1 + "!";
    str2 = str2 + "!";

    if(str1.equals(str2)) {
      System.out.println("文字列は同じです。");
    } else {
      System.out.println("文字列は異なります。");  
    }
  }
}

<実行結果>

まとめ

条件分岐から、プログラミングらしくなります。
条件分岐ができることで、入力に応じて処理を変えることができる為、色々試してみてください。

次回講座:繰り返し
【Java入門⑤】繰り返し ~初心者でも安心!基礎から学べるプログラミング講座~

タイトルとURLをコピーしました