※前回の講座がまだの人はこちらから
【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 == y | xとyが等しい時 |
!= | x != y | xとyが等しくない時 |
< | x < y | xがyより小さい時 |
> | x > y | xがyより大きい時 |
<= | x <= y | xがy以下の時 |
>= | x >= y | xがy以上の時 |
! | !x | xが偽(false)の時 |
論理演算子
一つの条件式で複数の条件を見ることはできません。
「xは3より大きく、9以下である」という条件を作る場合、「3 < x <= 9」と書くことはできず、「3 < x」と「x <= 9」に分けて、組み合わせる必要があります。
この様に、複数の条件を組み合わせたい場合、論理演算子を用います。
論理演算子 | 例 | 真(true)となる条件 |
&& | x && y | xとy双方が真(true)の時 |
|| | x || y | xと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("文字列は異なります。"); } } }
<実行結果>
まとめ
条件分岐から、プログラミングらしくなります。
条件分岐ができることで、入力に応じて処理を変えることができる為、色々試してみてください。