UPSTARTSのぱみやすです
今回はJavaの条件分岐の「if文」をみていきます
if文では「条件に応じて、処理を分岐させる」ことができます
書き方は「if (条件式) {処理}」のように記述します
1 2 3 |
if () { } |
「()」の中に条件式を書き、「{}」の中に処理を書きます
条件式には比較演算子や論理演算子を使います
比較演算子は
「>」(左辺が右辺より大きい)、
「>=」(左辺が右辺より大きいか等しい)、
「<」(左辺が右辺より小さい)、
「<=」(左辺が右辺より小さいか等しい)
「==」(左辺と右辺が等しい)、
「!=」(左辺と右辺が異なる)、このような記号を使います
また論理演算子も組み合わせて使うことができて、
「&&」(and :両方の条件が満たされた場合)、
「||」(or : どちらかの条件が満たされた場合)といった記号を使います。
比較演算子
まずは比較演算子をみていきます
int型
まず、変数を初期化し、
条件式に「powerが80以上だったら」、処理に「強いと表示させる」と記述します
1 2 3 4 |
int power = 100; if(power > 80) { System.out.println("強い"); } |
こちらの場合、「powerが80以上の場合」「強い」と表示されます
それ以外の場合は「else 」を使い、「弱い」と表示させる処理を書きます
処理は「else」の後の「{}」の中に書きます
1 2 3 4 5 6 |
int power = 100; if(power > 80) { System.out.println("強い"); } else { System.out.println("弱い"); } |
「power」が「80」以上の場合、「強い」と表示させ、それ以外の場合は「弱い」と表示されます
実行すると「power」の値が「100」なので、「強い」と表示されます
「power」を「60」に変えれば、「弱い」と表示されます
String型
ではもうひと一つ例を見ていきましょ
文字列を使用して「左辺と右辺が等しい場合」の処理をみていきます
まず、変数を初期化し、条件式に「groupが海賊の場合」、処理に「財宝と表示させる」と記述します
1 2 3 4 |
String group = "海賊"; if(group == "海賊") { System.out.println("財宝"); } |
ここでほとんどの人がハマる落とし穴があって、「Stirng型」や文字列を比較する場合、
特殊な書き方をする必要があります
この場合だと「実行できるけど時々変な動きをする」という たちの悪い不具合が起こる可能性があります
どのようにするかと言うと
1 2 3 4 |
String group = "海賊"; if(group.equals("海賊")) { System.out.println("財宝"); } |
「変数」のあとに「.equals」(イコールズ)と書いてあげて文字列をかっこで囲えばおけです
さらに細かく記述ことができて、その場合は「else if」を使って条件を分岐させることが出来ます
1 2 3 4 5 6 7 8 9 10 |
String group = "海賊"; if(group.equals("海賊")) { System.out.println("財宝"); } else if (group.equals("海軍")) { System.out.println("正義"); } else if (group.equals("革命軍")) { System.out.println("変革"); } else { System.out.println("その他"); } |
このようにたくさん記述こともできます
「group」が「海賊」の場合「財宝」、「海軍」の場合は「正義」、
「革命軍」の場合「変革」、それ以外の場合は「その他」と表示されます
実行すると「「group」が「海賊」なので、「財宝」と表示されます
「group」を「革命軍」に変えれば、「変革」と表示されます
論理演算子
次に論理演算子をみてみましょう
&&
まず、「&&」(and :両方の条件が満たされた場合)をみていきます
先ほどの例を使い、このように書きます
1 2 3 4 5 |
int power = 100; String group = "海賊"; if(power > 80 && group.equals("海賊")) { System.out.println("強い" + "海賊"); } |
「&&」は条件式の間に書き、両方の条件が満たされた場合、処理が実行されます
この場合は両方の条件が満たされてるので、「強い海賊」と表示されます
||
次に、「||」(or :どちらかの条件が満たされた場合)、みていきます
「&&」を「||」に変えてあげて、変数を「60」に変更し、条件式を変えてあげます
1 2 3 4 5 6 7 8 |
int power = 60; String group = "海賊"; if(power < 80 || group.equals("海賊")) { System.out.println("弱い" + "海賊"); } if(power > 80 || group.equals("海軍")) { System.out.println("強い" + "海軍"); } |
「||」は条件式の間に書き、どちらかの条件が満たされた場合、処理が実行されます
この場合、2つのif文で両方とも、どちらかの条件が満たされているので、「弱い海賊」「強い海軍」の
両方とも表示されます
まとめ
「 if」による条件分岐はよく使われるので、しっかり理解しておきましょう
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
package lesson; public class Main { //条件分岐 : if文 public static void main(String[] args) { //比較演算子 int power =100; if(power > 80) { System.out.println("強い"); } else { System.out.println("弱い"); } String group = "海賊"; if(group.equals("海賊")) { System.out.println("財宝"); } else if (group.equals("海軍")) { System.out.println("正義"); } else if (group.equals("革命軍")) { System.out.println("変革"); } else { System.out.println("その他"); } } } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
package lesson; public class Main { //条件分岐 : if文 public static void main(String[] args) { //論理演算子 && int power = 100; String group = "海賊"; //&& if(power > 80 && group.equals("海賊")) { System.out.println("強い" + "海賊"); } } } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
package lesson; public class Main { //条件分岐 : if文 public static void main(String[] args) { //論理演算子 || int power = 60; String group = "海賊"; //|| if(power < 80 || group.equals("海賊")) { System.out.println("弱い" + "海賊"); } if(power > 80 || group.equals("海軍")) { System.out.println("強い" + "海軍"); } } } |
では次回はもう一つの条件分岐のswitch文についてやっていいきます