「もし、20歳以上であればお酒が買える」「もしホテルに空室がなければ、満室と表示する」など「もし○○なら、△△する」というのは日常で日夜使っている表現だろう。プログラミングでもこういう記述は必須になってくる。
Javaではif文と呼ばれるものを使って、これを表現していく。このページではifについてまとめている。プログラムを組むのであれば、100%使う文法なので必ず書き方と使い方を覚えてしまおう。
目次
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文の典型例だ。実際に打ってみることをお勧めするが、まずは見てみよう。
1 2 3 4 5 6 7 8 9 10 11 |
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"); } } |
実行結果
1 |
[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文の中に書くプログラムはひとつである必要は無い。次のように書ける。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
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"); } } } |
実行結果
1 2 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であれば、式に続く文が実行される。ただし、次の一行しか実行されないので、注意しよう。
1 2 3 4 5 6 7 8 9 10 11 |
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"); } } |
実行結果
1 |
[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行目などはどうなるのかを見てみよう。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
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 = 番号」の表示は、条件に関係なくすべて表示されている。
1 2 3 4 |
[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文はプログラミングにはなくてはならない文法だ。もし理解できないところがあったら、何度でも読み直し、必ず一通り理解しておこう。
さらに細かい条件の分岐については次のページなどで解説をしているので、続き学習していただければと思う。
コメント