If文による条件分岐

特定の条件によって実行したいプログラムを変更するときは、if文を使います。

if(条件式) {
  // 条件式がtrueのときに実行される
} else {
  // 条件式がfalseのときに実行される
}

プログラム例:

int score = 70;

if(score >= 80) {
   System.out.println("80点以上");	 
} else {
   System.out.println("80点未満");	 
}

結果

80点未満

カッコの省略

上の式はカギカッコを使わずに

if(score >= 80) 
   System.out.println("80点以上");	 
else 
   System.out.println("80点未満");

と書くこともできます。この場合、条件式に続く命令は1行に納まっている必要があります。

たとえば、以下のように書くと、

if(score >= 80) 
   System.out.println("80点以上");	 
   System.out.println("Grade A");

下のように書いたのと同じとみなされます。

if(score >= 80) 
   System.out.println("80点以上"); // scoreが80以上のときのみ実行される	 
System.out.println("Grade A");  // scoreの値にかかわらず実行される

混乱を防ぐため、if文のあとの節には常にカッコをつけておくようにするのもよいでしょう。

条件演算子 if文の省略系

上のコードは、

System.out.println(score >=80 ? "80点以上" : "80点未満");

と書くこともできます。

条件演算子の構文

(条件式) ? (条件式が真のときの値) : (条件式が偽のときの値)

条件演算子はプログラムをすっきり見せたいときに好んで使われます。

ネスト(入れ子)になった条件文

if文を入れ子にすると、複数の条件に基づいて結果を分岐させることもできます。

int score = 70;

if(score >= 80) {
   System.out.println("80点以上");	 
} 
else {
   if(score >= 70) {
      System.out.println("80点未満 70点以上");	 
   }
   else { 
      System.out.println("70点未満");	 
   }    
}

プログラムに慣れてくると、上の文と同じことを以下のように書きます。

int score = 70;

if(score >= 80) {
   System.out.println("80点以上");	 
} else if (score >= 70) {
   System.out.println("80点未満 70点以上");	 
} else { 
   System.out.println("70点未満");	 
}