この記事の目次
1. if文とは
if文とは条件により処理を変える分岐命令です。2つの値の大小関係や、等しい・等しくないなどの条件により処理を変える場合によく使われています。
例えば、「もし、明日は天気が良ければ、海に行きます、そうでなければ、家で寝ます」はJAVA言語で変えると以下のようになります:
if(明日の天気が良い){ 海に行きます; }else{ 家で寝ます; } //JAVAプログラム化にすると if(条件式){ 命令1; }else{ 命令2; }
2. ブッロク{}の書き方
● ブロック{}とは
● ルール1:波括弧の省略
ブロックとは普通、波括弧{}
で囲まれた部分を指していますが、内容が1行しかなければ、波括弧を省略しても大丈夫だというルールです
実際に開発する際、プログラムミスの防止のため、ブロックの波括弧を省略しないと推奨されています。
if(明日の天気が良い){ 海に行きます; ショッピングします。; }else 家で寝ます;//この{}括弧内に行動が1行しかないので、{}括弧内が省略できます
● ルール2:ブッロク内で宣言した変数の寿命
ブロックの中で宣言した変数は、そのブロックが終わると同時に消滅します。つまり、その変数はブロックの外側では利用できません。
例えば、以下の例に実行エラーが出ます
package helloworld; public class HelloWorld { public static void main(String[] args) { if(true){ int age = 30; System.out.println("あなたの年齢: " + age); } System.out.println("あなたの年齢: " + age);//age変数は宣言されてないので、ビルド失敗 } }
System.out.println("あなたの年齢: " + age)
は括弧の外側のage変数を要求しています、もちろんage変数が存在していないので、エラーが出ます。3. 条件式の書き方
● 条件式とは
if(あなたの年齢 == 20){//あなたの年齢は20歳だったら... }
関係演算子の種類と意味
演算子 | 意味 |
---|---|
== | 左辺と右辺が等しい |
!= | 左辺と右辺が異なる |
> | 左辺が右辺より大きい |
< | 左辺が右辺より小さい |
>= | 左辺と右辺より大きいか等しい |
<= | 左辺と右辺より小さいか等しい |
● 文字列の比較
if (s.equals("今日")){ }
JAVAで if (s == "今日"){
と書いたら正しそうに見えますが、実行エラーです。理由はクラスの記事で解釈します。今所は以上の構文を覚えておいてください。
● 論理演算子を用いた複雑な条件式
演算子 | 意味 |
---|---|
&& | かつ(両方の条件が満たされた場合にtrue) |
|| | または(どちらか片方の条件さえ満たされたらtrue) |
if(明日が晴れる && お金を持っている){ ショッピングする; } //「明日が晴れ かつ お金を持っている」なら ショッピングする
4. 分岐構文のバリエーション
● if 命令
if(条件式){ ブロック; }説明 : もし括弧の中の条件が満たされば、ブロック内の内容を実行します、満たされなければ、ブロックを飛ばします。
package helloworld; public class HelloWorld { public static void main(String[] args) { // integer型のage(年齢)変数を宣言し、30と初期値します int age = 30; //コンソールに出力します System.out.println("あなたの年齢: " + age); // age が 20より大きいという条件が満たされば、{}の中の命令を実行します if (age > 20) { //if文内の命令 System.out.println("あなたは20歳を超えています"); } if (age < 40) { //if文内の命令 System.out.println("あなたは未成年です"); } //if文外の命令 System.out.println("ありがとう"); } }
実行結果:
説明:
System.out.println("あなたは20歳を超えています")
を実行して、「あなたは20歳を超えています」をコンソールに出力しましたが、(20歳より小さい)ではないので、System.out.println("あなたは未成年です")
の命令を実行しませんでした。● if else 命令
if(条件式){ ブロック1; }else{ ブロック2; }説明 : 括弧の中の条件が満たれば、ブロック1内の内容を実行します、ブロック2内の内容を実行しません。逆に条件が満たされなければ、ブロック1内の内容を飛ばして、ブロック2内の内容を実行します。
package helloworld; import java.util.Scanner; //Scannerクラスのimport public class HelloWorld { public static void main(String[] args) { // integer型のage(年齢)変数を宣言し、30と初期値します int age = 30; //コンソールに出力します System.out.println("あなたの年齢: " + age); // age が 20より大きいという条件が満たされば、 if (age > 20) { System.out.println("あなたは20歳を超えています"); }else{//そうでなければ System.out.println("あなたは未成年です"); } //if文外の命令 System.out.println("ありがとう"); } }
実行結果:(上の例と全く一緒です)
● if-else if-else 構文
if(条件式1){ ブロック1 }else if (条件式2){ ブロック2; }else if (条件式3){ . . . }else{ 最終ブロック }
「もし条件が満たされなかった場合、別の条件で評価したい」時には、else if
で始まるブロックをelseの前に挿入した「if-else if-else構文」を使用します。
1つのif文で3つ以上のルートに分岐できる特徴を持っています、しかし、次のルールを従わなければなりません。
5. まとめ
ここまでは分岐命令if elseの定義、使い方を紹介しました。どの言語でも分岐命令が一番使われていますので、以下の演習問題をやりながら理解してください。
6. 演習問題
JAVAの分岐構文 If-Elseの演習問題