Javaのif文 – エンジニアの入り口 https://eng-entrance.com 「エンジニアの入り口」は、プログラミング入門やエンジニアリング入門の知識が満載の初心者のための勉強サイトです。プログラミングやサーバ、ネットワークの基礎知識や勉強方法を習得できます。 Fri, 03 Mar 2017 05:50:29 +0000 ja hourly 1 https://wordpress.org/?v=5.2.19 【Java入門】switchで一度に複数の条件を設定する方法 https://eng-entrance.com/java-if-switch-plural https://eng-entrance.com/java-if-switch-plural#respond Wed, 07 Dec 2016 02:55:44 +0000 http://eng-entrance.com/?p=3625 Javaのswitch文で、複数の条件をひとつの処理に対応させたいというときはあるはずだ。

このページではその書き方についてお伝えする。使い方は簡単で、1分でわかるだろう。

Switchで複数条件を1処理に設定する

Javaのswitch文は、式の値によって制御をいくつかの文の中のひとつに渡す。この時、いくつかのラベルを同じひとつ文に紐付けさせることができる。

値が1であっても2であっても同じ文が実行されるように紐付けられるのである。

switch ( 式 ) {
	case 定数1:
	case 定数2:
		文12;
		break;
	case 定数3:
	case 定数4:
		文34
		break;
}

ラベルはcaseと定数によって作られている。このラベルをいくつか同じ文に関連させるために、それらのラベルを続けて書いて関連させる文を最後に置く。こうすると、連続して書かれたすべてのラベルが最後に置いた文に紐付けされる。書き方の基本はこうだ。

では、この点をサンプルプログラムで確認してみよう。

式がint型のサンプルプログラム

このサンプルプログラムは、式にint型の変数numberを使っている。この変数の値に対応したラベルに続く文、文字列の表示が行われる。

public class SwitchHavingMultiLabel {
    public static void main (String[] args){
        int number = 3;//[1]
        switch (number) {//[2]
            case 1://[3]
            case 2://[4]
                System.out.println("[5] number = 1, 2");
                break;//[6]
            case 3://[7]
            case 4://[8]
            case 5://[9]
                System.out.println("[10] number = 3, 4, 5");
                break;//[11]
        }
    }
}

実行結果

[10] number = 3, 4, 5

サンプルプログラムの説明

それでは簡単にプログラムの解説をしてゆこう。

  • [1]変数numberを宣言し、初期値の3を代入する。
  • [2][3][4] もしnumberが1か2ならば、「number = 1, 2」を表示する。
  • [5] 中断して、switch文を終わる。
  • [2][6][7][8][9][10] もしnumberが3か4か5ならば、「number = 3, 4, 5」を表示する。
  • [11] 中断して、switch文を終わる。

まとめ

簡単だが、このようにJavaのswitch文では設定ができる。覚えておきたい。

]]>
https://eng-entrance.com/java-if-switch-plural/feed 0
条件を分岐するJavaのswitch文の使い方【初心者向け!】 https://eng-entrance.com/java-if-switch https://eng-entrance.com/java-if-switch#respond Tue, 06 Dec 2016 04:23:40 +0000 http://eng-entrance.com/?p=3618 if文の条件分岐以外にも、処理手順を分岐する方法がある。Javaではswitch文がこれだ。

switchはif文で書くと面倒だと思うような、簡単ながら量の多い比較をするのに適している。このページではswitch文の使い方をまとめているので、使い方をマスターしていただければと思う。

Javaのswitch文の使い方

Javaのswitch文は、いくつかのケースを想定して、それに基づいて実行することをswitchできる文法だ。

if文との違い

if-else文はふたつの内のひとつの文を選んで実行したが、switch文はいくつかの文の中から実行する文のひとつを選ぶことができる。

わかりにくいと思うので、ちょっと解説しておこう。

例えば、fruitsという変数に「apple」が入っていたら「りんご」を出力したい。「grape」が入っていたら「ぶどう」を出力したい。「orange」が入っていたら「みかん」を出力したいとしよう。

if文で書くと、if書いて、if-elseを書いて、、、と若干面倒だ。これが3つであればまだましだが、10個あったらどうだろうか? 書きたくなくなるだろう。

switch文で書くと、簡単になる。

switch ("apple") {
	case "apple":
		System.out.println("りんご");
		break;
	case "orage":
		System.out.println("みかん");
		break;
	……
	case 定数n:
		文n;
		break;
}

こんな感じでcaseを増やしていけばいい。

正確な文法は次のようになる。

switch ( 式 ) {
	case 定数1:
		文1;
		break;
	case 定数2:
		文2;
		break;
	……
	case 定数n:
		文n;
		break;
}

式の部分は、char型、byte型、short型、int型、Character型、Byte型、Short型、Integer型、String型、 enum型のいずれかになる。

サンプルプログラムを見ていただけるとなんとなくわかるだおう。

式に続いてswitch文の本体がある。ブロック{ }で囲まれた部分だ。このブロックは、caseと定数によってラベルが付けられている。どの「case」にも定数が必要だ。

ラベルとcase定数は、switch文で関連づけられていると言われている。式の値と等しい定数を持つcaseが、式の値に対応するラベルになる。

では、文の実行はどのように行われるのだろうか。それは、式がある値のとき、その値に対応するラベルが選ばれる。そして、それに続く文が実行され、switch文はbreakで終わる。

では、この点をサンプルプログラムで確認してみよう。

式がint型のサンプルプログラム

このサンプルプログラムは、式にint型の変数numberを使っている。この変数の値に対応するラベルに続く文、文字列の表示が行われる。

public class SwitchByIntTypeValue {
    public static void main (String[] args){
        int number = 2;//[1]
        switch (number) {//[2]
            case 1://[3]
                System.out.println("[4] number = 1");
                break;//[5]
            case 2://[6]
                System.out.println("[7] number = 2");
                break;//[8]
            case 3://[9]
                System.out.println("[10] number = 3");
                break;//[11]
            case 4://[12]
                System.out.println("[13] number = 4");
                break;//[14]
            case 5://[15]
                System.out.println("[16] number = 5");
                break;//[17]
        }
    }
}

実行結果

[7] number = 2

サンプルプログラムの説明

それでは簡単にプログラムの解説をしてゆこう。

  • [1]変数numberを宣言し、初期値の2を代入する。
  • [2][3][4] もしnumberが1ならば、「number = 1」を表示する。
  • [5] 中断して、switch文を終わる。
  • [2][6][7] もしnumberが2ならば、「number = 2」を表示する。
  • [8] 中断して、switch文を終わる。
  • [2][9][10] もしnumberが3ならば、「number = 3」を表示する。
  • [11] 中断して、switch文を終わる。
  • [2][12][13] もしnumberが4ならば、「number = 4」を表示する。
  • [14] 中断して、switch文を終わる。
  • [2][15][16] もしnumberが5ならば、「number = 5」を表示する。
  • [17] 中断して、switch文を終わる。

式がchar型のサンプルプログラム

このサンプルプログラムは、式にchar型の変数characterを使っている。この変数の値に対応するラベルに続く文、文字列の表示が行われる。

public class SwitchByCharacterTypeValue {
    public static void main (String[] args){
        char character = 'C';//[1]
        switch (character) {//[2]
            case 'A'://[3]
                System.out.println("[4] character = A");
                break;//[5]
            case 'B'://[6]
                System.out.println("[7] character = B");
                break;//[8]
            case 'C'://[9]
                System.out.println("[10] character = C");
                break;//[11]
            case 'D'://[12]
                System.out.println("[13] character = D");
                break;//[14]
            case 'E'://[15]
                System.out.println("[16] character = E");
                break;//[17]
        }
    }
}

実行結果

[10] character = C

サンプルプログラムの説明

それでは簡単にプログラムの解説をしてゆこう。

  • [1]変数characterを宣言し、初期値の 'C'を代入する。
  • [2][3][4] もしcharacterが 'A'ならば、「character = A」を表示する。
  • [5] 中断して、switch文を終わる。
  • [2][6][7] もしがcharacterが'B'ならば、「character = B 」を表示する。
  • [8] 中断して、switch文を終わる。
  • [2][9][10] もしcharacterが'C'ならば、「character = C」を表示する。
  • [11] 中断して、switch文を終わる。
  • [2][12][13] もしcharacterが'D'ならば、「character = D」を表示する。
  • [14] 中断して、switch文を終わる。
  • [2][15][16] もしnumberが'E'ならば、「character = E」を表示する。
  • [17] 中断して、switch文を終わる。

式がString型のサンプルプログラム

このサンプルプログラムは、式にString型の変数Stringを使っている。この変数の値に対応するラベルに続く文、文字列の表示が行われる。

public class SwitchByStringTypeValue {
    public static void main (String[] args){
        String String = "水曜日";//[1]
        switch (String) {//[2]
            case "月曜日"://[3]
                System.out.println("[4] string = 月曜日");
                break;//[5]
            case "火曜日"://[6]
                System.out.println("[7] string = 火曜日");
                break;//[8]
            case "水曜日"://[9]
                System.out.println("[10] string = 水曜日");
                break;//[11]
            case "木曜日"://[12]
                System.out.println("[13] string = 木曜日");
                break;//[14]
            case "金曜日"://[15]
                System.out.println("[16] string = 金曜日");
                break;//[17]
            case "土曜日"://[18]
                System.out.println("[19] string = 土曜日");
                break;//[20]
            case "日曜日"://[21]
                System.out.println("[22] string = 日曜日");
                break;//[23]
        }
    }
}

実行結果

[10] string = 水曜日

サンプルプログラムの説明

それでは簡単にプログラムの解説をしてゆこう。

  • [1]変数stringを宣言し、初期値の "月曜日"を代入する。
  • [2][3][4] もしstringが"月曜日" ならば、「string = 月曜日」を表示する。
  • [5] 中断して、switch文を終わる。
  • [2][6][7] もしstringが”火曜日”ならば、「string = 火曜日 」を表示する。
  • [8] 中断して、switch文を終わる。
  • [2][9][10] もしstringが”水曜日”ならば、「string = 水曜日 」を表示する。
  • [11] 中断して、switch文を終わる。
  • [2][12][13] もしstringが”木曜日”ならば、「string = 木曜日 」を表示する。
  • [14] 中断して、switch文を終わる。
  • [2][15][16] もしstringが”金曜日”ならば、「string = 金曜日 」を表示する。
  • [17] 中断して、switch文を終わる。
  • [2][18][19] もしstringが”土曜日”ならば、「string = 土曜日 」を表示する。
  • [20] 中断して、switch文を終わる。
  • [2][21][22] もしstringが”日曜日”ならば、「string = 日曜日 」を表示する。
  • [23] 中断して、switch文を終わる。

switch文で書くべきケース

switch文をどんな場面で使うかを考えてみよう。例えば、値のひとつひとつに対応した処理があると、if文で書くことを思いつくかもしれない。最初のサンプルプログラム「式がint型のサンプルプログラム」を、if文を使って書くと次のようになる。

int number = 2;//[1]
        if (number == 1) {
            System.out.println("[4] number = 1");
        } else if (number == 2) {
            System.out.println("[4] number = 2");
        } else if (number == 3) {
            System.out.println("[4] number = 3");
        } else if (number == 4) {
            System.out.println("[4] number = 4");
        } else if (number == 5) {
            System.out.println("[4] number = 5");
        }

コードの中にbreakがないので、if文を使ったほうがコンパクトに書ける気がして、このほうがいいと思ってしまうこともある。しかし、「3」と書くところを誤って「2」としてしまったらどうなるだろう。switch文はエラーになる。しかし、if文のほうはエラーにならない。

switch文:
      switch (number) {
            …..
            case 2:
                System.out.println("number = 2");
                break;
          // case 2:   ←エラーになる
                System.out.println(" number = 3");
                break;
            …..
}
if文:
      …..
      } else if (number == 2) {
            System.out.println("[4] number = 2");
      } else if (number == 2) {
            System.out.println("[4] number = 3");
      …..

つまり、if文ではこうした誤りが発見されないのだ。それで、ひとつひとつの値に対応した処理をする場合は、switch文を使うことを勧めたい。

まとめ

switch文の使い方がなんとなくわかっただろうか?

switchは使いたい場面が必ず出てくる。そのときになって思い出してもいいが、できる限り使い方を覚えておこう。

]]>
https://eng-entrance.com/java-if-switch/feed 0
【初心者向け】条件をさらに分ける! Javaのelse-ifの使い方 https://eng-entrance.com/java-if-elseif https://eng-entrance.com/java-if-elseif#respond Sun, 04 Dec 2016 02:56:42 +0000 http://eng-entrance.com/?p=3562 Javaのif文には、さらに条件を分けていくif else文というものが存在する。「もし○○なら△△する。そうでなくて、●●なら▲▲する」という場合に活躍する文法だ。

このページでは条件追加して分岐を増やしていくJavaのelse ifについてお伝えしよう。

else-if文の基本的な使い方

else ifは次のような処理のときに使える。

コンビニに行って、おでんがセールだったらおでんを、おでんがセールでなくておにぎりのセール中であればおにぎりを、いずれでもなければパンを買うような処理だ。

else-if

ifを2回挟んで確認するような処理になる。2回目のifで登場するのがelse ifだ。

これを日本語的に書くと、

コンビニに行く。

もし、おでんがセール中なら、おでんを買う!

おでんがセール中でなく、おにぎりがセール中なら、おにぎりを買う!

いずれでもなければパンを買う!

帰る。

となる。

これをプログラミングで表現するのが「else if文」の役割だ。次のようになる。

コンビニに行く。
if(おでんがセール中なら){
 おでんを買う!;
} else if (おにぎりがセール中なら) {
    おにぎりを買う!;
} else {
 パンを買う!;
}
帰る。

else ifのような文法は他のプログラミング言語でも必ず登場していくる。理解しておこう。

Javaのelse if文を組み合わせる使い方

 

使い方は次の通りだ。

elseも登場するパターン

ifではじめに確認し、続いてelse ifで確認して、最後にその他はこうしよう、というプログラムだ。上のコンビニの例がこれに当たる。文法は次の通りだ。

if ( 式 ) {
  文;
} else if ( 式 ) {
  文;
} else {
  文;
}

なくてもいい

elseはなくても動く。また、else if を複数つなげることもできる。

if ( 式 ) {
  文;
} else if ( 式 ) {
  文;
}

では、この点をサンプルプログラムで確認してみよう。

ifとelse ifとelse文の組み合わせサンプルプログラム

このサンプルプログラムは、if-then-else文を組み合わせて色々な条件を作り出している。numberを値に応じて、3つの範囲に分類するときこの組み合わせが使える。

  • 範囲1:numberが1から9
  • 範囲2:numberが10から99
  • 範囲3:numberが100以上

public class IfThenElseLastRangeIsGreaterThanOrEqualTo100 {
    public static void main (String[] args){
        int number = 200;//[1]
        if (number >= 1 && number <= 9){//[2]
            System.out.println("[3] number : 1 - 9");
        } else if (number >= 10 && number <= 99) {//[4]
            System.out.println("[5] number : 10 - 99");
        } else {//[6]
            System.out.println("[7] number >= 100");
        }
    }
}

実行結果

[7] number >= 100

サンプルプログラムの説明

それでは簡単にプログラムの解説をしてゆこう。

  • [1]変数numberを宣言し、初期値の200を代入する。
  • [2][3] もしnumberが1以上で9以下ならば、「number : 1 - 9 」を表示する。
  • [4][5] もしnumberが10以上で99以下ならば、「number : 10 - 99 」を表示する。
  • [6][7] それ以外ならば、「number >= 100」を表示する。

if-elseが複数あるサンプルプログラム

このサンプルプログラムは、if-then-else文とif文を組み合わせて色々な条件を作り出している。numberを値に応じて、3つの範囲に分類するときこの組み合わせが使える。

  • 範囲1:numberが1から9
  • 範囲2:numberが10から99
  • 範囲3:numberが100から999

public class IfThenElseLastRangeIsFrom100To999 {
    public static void main (String[] args){
        int number = 200;//[1]
        if (number >= 1 && number <= 9){//[2]
            System.out.println("[3] number : 1 - 9");
        } else if (number >= 10 && number <= 99) {//[4]
            System.out.println("[5] number : 10 - 99");
        } else if (number >= 100 && number <= 999){//[6]
            System.out.println("[7] number : 100 - 999");
        }
    }
}

実行結果

[7] number : 100 - 999

サンプルプログラムの説明

それでは簡単にプログラムの解説をしてゆこう。

  • [1]変数numberを宣言し、初期値の200を代入する。
  • [2][3] もしnumberが1以上で9以下ならば、「number : 1 - 9 」を表示する。
  • [4][5] それ以外で、もしnumberが10以上で99以下ならば、「number : 10 - 99 」を表示する。
  • [6][7]それ以外で、numberが100以上で999以下ならば、「number : 100 - 999」を表示する。

まとめ

このページではJavaのelse if文についてお伝えしてきた。条件分岐の際に、必ず使うことになる文法なので、正確に使い方をマスターしておこう。

]]>
https://eng-entrance.com/java-if-elseif/feed 0
【初心者でもすぐ理解!】Javaの「if else」の使い方 https://eng-entrance.com/java-if-else https://eng-entrance.com/java-if-else#respond Sat, 03 Dec 2016 02:54:43 +0000 http://eng-entrance.com/?p=3555 「もし宿に空室がなければ、満室と表示する」など「もし○○なら、△△する」という表現にはif文を使用すればよかった。では、「もし○○なら、△△する。そうでない場合、□□する」という場合にはどうすればいいか?

Javaではif-else文を使えば、これを表現出来る。このページでは条件を2分岐させるJavaのifとelseについてお伝えしよう。

if-else文の基本

if-else文は次のようなケースで使う。

コンビニに行って、おでんがセールだったらおでんを買う、セールではなければおにぎりを買う、というような場合だ。

まさしく「もし○○なら、△△する。そうでない場合、□□する」という状態になる。

ifのフローチャート

これを日本語的に書くと、

コンビニに行く。

もし、おでんがセール中なら、おでんを買う!

セール中でなければ、おにぎりを買う!

帰る。

となる。

これをプログラミングで表現するのが「if-else文」の役割だ。次のようになる。

コンビニに行く。
if(おでんがセール中なら){
 おでんを買う!;
} else {
    おにぎりを買う!;
}
帰る。

Javaだけではなく、どのようなプログラミング言語でも同じようにif-else文のようなものは用意されている。必ず使うからだ。

Javaのif-elseの使い方

Javaのif-else文は、条件によって文の実行を制御することができる。また、ふたつの文があれば、どちらかを選択して実行することもできる。両方の文を実行することはできない。

if-else文ははじめに式を確認して、それがtrueならifのすぐ下の文が、falseならelseの下の文が実行される。

書き方の基本はこうだ。

if ( 式 ) {
  文;
} else {
  文;
}

式の値によって次のように文は実行される。

  • もし式の値がtrueならば文が実行される。文の実行が問題なく実行されれば、elseのブロック部分({}の中のこと)は読まない
  • もし式の値がfalseならばifの下の文は実行されず、elseの下のブロックが実行される

では、この点をサンプルプログラムで確認してみよう。

Java if-else文のサンプルプログラム

if-else文の典型的なサンプルだ。確認してみよう。

public class IfThenElseOneStatementInBlock {
    public static void main (String[] args){
        int number = 2;//[1]
        if (number == 1) {//[2]
            System.out.println("[3] number = 1");
        } else {//[4]
            System.out.println("[5] else - number = 1");
        }
        if (number == 2) {//[6]
            System.out.println("[7] number = 2");
        } else {//[8]
            System.out.println("[9] else - number = 2");
        }
        if (number == 3) {//[10]
            System.out.println("[11] number = 3");
        } else {//[12]
            System.out.println("[13] else - number = 3");
        }
    }
}

実行結果

[5] else - number = 1
[7] number = 2
[13] else - number = 3

式がtrueであれば、式に続くブロック内の文が実行されていることがわかる。これは、numberが2の場合である。

もし式がfalseであれば、elseに続くブロック内の文が実行される。これは、numberが1と3の場合だ。

サンプルプログラムの説明

それでは一応、簡単にプログラムの解説をしておこう。

  • [1]変数numberを宣言し、初期値の2を代入する。
  • [2][3] もしnumberが1ならば、「number = 1 」を表示する。
  • [4][5] そうでなければ、「else - number = 1」を表示する。
  • [6][7] もしnumberが2ならば、「number = 2 」を表示する。
  • [8][9] そうでなければ、「else - number = 2」を表示する。
  • [10][11] もしnumberが3ならば、「number = 3 」を表示する。
  • [12][13] そうでなければ、「else - number = 3」を表示する。

ブロックを持たないサンプルプログラム

if文と同じように、ブロック({}←これ)がないif-else文も書くことができる。ブロックのありなしの違いについては、下記でご説明している。

基本的には{}で囲むようにしよう。Pythonなどの特殊な他の言語以外では、{}をきちんと書いた方が見やすくなる場合が多い。

このサンプルプログラムは、実行される文が式とelseに直接続く。

式がtrueであれば、式に続く文が実行される。これは、numberが2の場合である。もし式がfalseであれば、elseに続く文が実行される。これは、numberが1と3の場合である。

public class IfThenElseOneStatementWithoutBlock {
    public static void main (String[] args){
        int number = 2;//[1]
        if (number == 1)//[2]
            System.out.println("[3] number = 1");
        else//[4]
            System.out.println("[5] else - number = 1");
        if (number == 2)//[6]
            System.out.println("[7] number = 2");
        else//[8]
            System.out.println("[9] else - number = 2");
        if (number == 3)//[10]
            System.out.println("[11] number = 3");
        else//[12]
            System.out.println("[13] else - number = 3");
    }
}

実行結果

[5] else - number = 1
[7] number = 2
[13] else - number = 3

サンプルプログラムの説明

こちらも一応、細かく。

  • [1]変数numberを宣言し、初期値の2を代入する。
  • [2][3] もしnumberが1ならば、「number = 1 」を表示する。
  • [4][5] そうでなければ、「else - number = 1」を表示する。
  • [6][7] もしnumberが2ならば、「number = 2 」を表示する。
  • [8][9] そうでなければ、「else - number = 2」を表示する。
  • [10][11] もしnumberが3ならば、「number = 3 」を表示する。
  • [12][13] そうでなければ、「else - number = 2」を表示する。

ブロックを持たないふたつの文のサンプルプログラム

このサンプルプログラムは、実行されるふたつの文が式とelseに続く。つまり、if-else文が実行する文を含むブロックを持っていない。

式に続く最初の文は条件によって表示されたり、表示されなかったりする。しかし、式に続く2番目の文を書くとelseがエラーになる。If-else文でブロックがない場合は、一文しか書けないのだ。

        if (number == 1)
            System.out.println("[3]number = 1");
            System.out.println("[3]NUMBER = 1");                ←2番目の文
        else             ←この行がエラーになる
            System.out.println("[5]else - number = 1");
        System.out.println("[6]NUMBER = 1");

elseに続く最初の文は条件によって表示されたり、表示されなかったりする。しかし、2番目の文は条件に関係なく表示される。

式がtrueであれば、式に続く文が実行される。これは、numberが2の場合である。もし式がfalseであれば、elseに続く文が実行される。これは、numberが1と3の場合である。2番目の文はif-then文には含まれないので、大文字の「NUMBER = 番号」の表示はすべて行われる。

public class IfThenElseTwoStatementWithoutBlock {
    public static void main (String[] args){
        int number = 2;//[1]
        if (number == 1)//[2]
            System.out.println("[3]number = 1");
        else//[4]
            System.out.println("[5]else - number = 1");
        System.out.println("[6]NUMBER = 1");
        if (number == 2)//[7]
            System.out.println("[8]number = 2");
        else//[9]
            System.out.println("[10]else - number = 2");
        System.out.println("[11]NUMBER = 2");
        if (number == 3)//[12]
            System.out.println("[13]number = 3");
        else//[14]
            System.out.println("[15]else - number = 3");
        System.out.println("[16]NUMBER = 3");
    }
}

実行結果

[5]else - number = 1
[6]NUMBER = 1
[8]number = 2
[11]NUMBER = 2
[15]else - number = 3
[16]NUMBER = 3

サンプルプログラムの説明

それでは簡単にプログラムの解説をしてゆこう。

  • [1 [1]変数numberを宣言し、初期値の2を代入する。
  • [2][3] もしnumberが1ならば、「number = 1 」を表示する。
  • [4][5] それ以外ならば、「else - number = 1 」を表示する。
  • [6] 「NUMBER = 1」を表示する。
  • [7][8] もしnumberが2ならば、「number = 2 」を表示する。
  • [9][10] それ以外ならば、「else - number = 2 」を表示する。
  • [11] 「NUMBER = 2」を表示する。
  • [12][13] もしnumberが3ならば、「number = 3 」を表示する。
  • [14][15] それ以外ならば、「else - number = 3 」を表示する。
  • [16] 「NUMBER = 3」を表示する。

まとめ

このページではJavaのif-else文についてお伝えしてきた。こういった2分岐の処理は本当にしょっちゅう登場する。必ず使い方をマスターしてしまおう。

]]>
https://eng-entrance.com/java-if-else/feed 0
【初心者向け!】Javaのif文を使って条件分岐させる方法 https://eng-entrance.com/java-if-if https://eng-entrance.com/java-if-if#comments Fri, 02 Dec 2016 01:36:08 +0000 http://eng-entrance.com/?p=3548 「もし、20歳以上であればお酒が買える」「もしホテルに空室がなければ、満室と表示する」など「もし○○なら、△△する」というのは日常で日夜使っている表現だろう。プログラミングでもこういう記述は必須になってくる。

Javaではif文と呼ばれるものを使って、これを表現していく。このページではifについてまとめている。プログラムを組むのであれば、100%使う文法なので必ず書き方と使い方を覚えてしまおう。

if文とは?

例えば冬の寒い夜、あなたは「おでんのセールがやっていれば、おでんを買う」と決めてコンビニに行ったとしよう。次の図のようなイメージになる。

if

これをプログラミングで表現しようというのが「if文」の役割だ。もっと日本語的にそのまま書くと、次のようになる。

コンビニに行く。

もし、おでんがセール中なら

おでんを買う!(それ以外だと何も買わない)

帰る。

これをプログラミングで表現しようというのが「if文」の役割だ。次のようになる。

コンビニに行く。
if(おでんがセール中なら){
 おでんを買う!;
}
帰る。

if文は、条件によってプログラムの実行を制御することができるということだ。

また、条件を増やして、「もし○○なら△△する。そうでなければ□□する」や「もし○○なら△△する。○○ではなかったけど●●だったら▲▲する。そうでなければ□□する」というのも表現できる。

このページではまずシンプルな「もし○○なら△△する」だけを見ていこう。他のモノも次のページで解説する。

Javaでのif文の使い方

Javaのif文は次のように書く。

if ( 式 ) {   
 文;
}  

式は、Boolean型またはboolean型でなくてはならない。もし式の型がBoolean型ならば、基本型のboolean型に変換される。

ちょっと解説が難しいので、普通は論理演算子が入ると思っておけばいい。例えば、「x > 5」や「age > 20」、「sex == 'men'」などだ。

もし式の値が合っていれば(trueならば)プログラムが実行される。もし式の値がfalseならば文は実行されず、そのまま先に進む。

では、この点をサンプルプログラムで確認してみよう。

Java if文のサンプルプログラム

このサンプルプログラムは、if文の典型例だ。実際に打ってみることをお勧めするが、まずは見てみよう。

public class IfThenOneStatementWithoutBlock {
    public static void main (String[] args){
        int number = 2;//[1]
        if (number == 1)//[2]
            System.out.println("[3] number = 1");
        if (number == 2)//[4]
            System.out.println("[5] number = 2");
        if (number == 3)//[6]
            System.out.println("[7] number = 3");
    }
}

実行結果

[5] number = 2

式がtrueであれば、式に続くブロック内の文が実行される。これは、numberが2の場合である。もし式がfalseであれば、何も実行されない。これは、numberが1と3の場合である。

サンプルプログラムの説明

一応一文一文確認しておく。

  • [1] 変数numberを宣言し、初期値の2を代入する。
  • [2][3] もしnumberが1ならば、「number = 1」を表示する。
  • [4][5] もしnumberが2ならば、「number = 2」を表示する。
  • [6][7] もしnumberが3ならば、「number = 3」を表示する。

Javaのif文サンプルプログラム2

もちろん、if文の中に書くプログラムはひとつである必要は無い。次のように書ける。

public class IfThenThreeStatementsInBlock {
    public static void main (String[] args){
        int number = 2;//[1]
        if (number == 1) {//[2]
            System.out.println("[3] number");
            System.out.println("[4] = ");
            System.out.println("[5] 1");
        }
        if (number == 2) {//[6]
            System.out.println("[7] number");
            System.out.println("[8] = ");
            System.out.println("[9] 2");
        }
        if (number == 3) {//[10]
            System.out.println("[11] number");
            System.out.println("[12] = ");
            System.out.println("[13] 3");
        }
    }
}

実行結果

[7] number
[8] =
[9] 2

サンプルプログラムの説明

それでは簡単にプログラムの解説をしてゆこう。

  • [1]変数numberを宣言し、初期値の2を代入する。
  • [2][3] もしnumberが1ならば、「number 」を表示する。
  • [2][4] もしnumberが1ならば、「 = 」を表示する。
  • [2][5] もしnumberが1ならば、「 1 」を表示する。
  • [6][7] もしnumberが2ならば、「number 」を表示する。
  • [6][8] もしnumberが2ならば、「 = 」を表示する。
  • [6][9] もしnumberが2ならば、「 2 」を表示する。
  • [10][11] もしnumberが3ならば、「number 」を表示する。
  • [10][12] もしnumberが3ならば、「 = 」を表示する。
  • [10][13] もしnumberが3ならば、「 3 」を表示する。

ブロックを持たないif文

if文には他の書き方もある。{}をブロックというのだが、これを書かなくても、if文は動く。

はじめのうちは書いた方がわかりやすいので、絶対に書いた方がいい!が、もし他の人のプログラムを見たときに混乱しないようにご紹介はしておく。

if ( 式 )    
 文;  

という形だ。式がtrueであれば、式に続く文が実行される。ただし、次の一行しか実行されないので、注意しよう

public class IfThenOneStatementWithoutBlock {
    public static void main (String[] args){
        int number = 2;//[1]
        if (number == 1)//[2]
            System.out.println("[3] number = 1");
        if (number == 2)//[4]
            System.out.println("[5] number = 2");
        if (number == 3)//[6]
            System.out.println("[7] number = 3");
    }
}

実行結果

[5] number = 2

これは、numberが2の場合である。もし式がfalseであれば、何も実行されない。これは、numberが1と3の場合である

サンプルプログラムの説明

それでは簡単にプログラムの解説をしてゆこう。

  • [1] 変数numberを宣言し、初期値の2を代入する。
  • [2][3] もしnumberが1ならば、「number = 1」を表示する。
  • [4][5] もしnumberが2ならば、「number = 2」を表示する。
  • [6][7] もしnumberが3ならば、「number = 3」を表示する。

ブロックを持たないif文のサンプル2つ目

一応、ブロックがないときに、2行目などはどうなるのかを見てみよう。

public class IfThenTwoStatementWithoutBlock {
    public static void main (String[] args){
        int number = 2;//[1]
        if (number == 1)//[2]
            System.out.println("[3] number = 1");
        System.out.println("[4] NUMBER = 1");
        if (number == 2)//[5]
            System.out.println("[6] number = 2");
        System.out.println("[7] NUMBER = 2");
        if (number == 3)//[8]
            System.out.println("[9] number = 3");
        System.out.println("[10] NUMBER = 3");
    }
}

実行結果

このように「NUMBER = 番号」の表示は、条件に関係なくすべて表示されている。

[4] NUMBER = 1
[6] number = 2
[7] NUMBER = 2
[10] NUMBER = 3

このように1行目しか実行されていないのがわかるだろう。

サンプルプログラムの説明

一応丁寧に解説だけ。

  • [[1]変数numberを宣言し、初期値の2を代入する。
  • [2][3] もしnumberが1ならば、「number = 1 」を表示する。
  • [4] 「NUMBER = 1」を表示する。
  • [5][6] もしnumberが2ならば、「number = 2 」を表示する。
  • [7] 「NUMBER = 2」を表示する。
  • [8][9] もしnumberが3ならば、「number = 3 」を表示する。
  • [10]「NUMBER = 3」を表示する。

まとめ

Javaに限らずだが、if文はプログラミングにはなくてはならない文法だ。もし理解できないところがあったら、何度でも読み直し、必ず一通り理解しておこう。

さらに細かい条件の分岐については次のページなどで解説をしているので、続き学習していただければと思う。

]]>
https://eng-entrance.com/java-if-if/feed 1