if文

プログラムの処理を条件により分岐させることができます。処理を分岐させるのにif文を使います。この節では、if文の次の種類の使い方を学習します。

■ if文

「もし、今日が平日ならば仕事に行く」というように、日常でも「もし、~であれば、~する」という場面が多くあります。if文は、指定した条件式がtrueと判断されたときにのみ処理が実行されます。

if文の書式
if(条件式){
  処理;
}

if文

例:
 if(num == 1){
  System.out.println(“1です。”):
 }

○ ファイル

次のようにファイルを作成してください。

ファイル名 IfTest1.java

サンプルダウンロード

○ プログラム

次のようにプログラムを入力してください。

IfTest1.java

  1. import java.io.*;
  2. class IfTest1{
  3.     public static void main(String[] args) throws Exception{
  4.         //変数の宣言をする
  5.         String str;
  6.         //データを入力する準備をする
  7.         BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
  8.         //データを入力する
  9.         System.out.print("「平日」か「休日」を入力してください:");
  10.         str = br.readLine();
  11.         //平日の場合、メッセージを表示する
  12.         if(str.equals("平日")){
  13.             System.out.println("今日は仕事があります。");
  14.         }
  15.     }
  16. }

○ コンパイルと実行

C:¥work>javac IfTest1.java
C:¥work>java IfTest1
「平日」か「休日」を入力してください:平日
今日は仕事があります。

C:¥work>java IfTest1
「平日」か「休日」を入力してください:休日

C:¥work>

○ フローチャート

ifフローチャート

○ 解説

今回のサンプルから、キーボード入力が登場します。キーボードから入力をするために、いくつかのプログラムを書く必要がありますが、詳しくはオブジェクト指向編で説明します。キーボード入力で関係するプログラムは、4、9、13行目です。4行目では、「throws Exception」が追加されています。そして9行目で「BufferedReader br = new BufferedReader(new InputStreamReader(System.in));」が書かれていますが、これがキーボード入力をするための記述です。13行目では、「br.readLine()」がありますが、これが実行されるとキーボード入力待ち状態になり、入力した文字列が変数strに代入されます。

16行目では、変数strと「平日」という文字列を比較しています。等しいかどうかを比較するときJavaでは、「=」や「==」で比較するのではなく、「変数名.equals([比較する文字列])」と書き、等しい場合は「true」を、等しくない場合は「false」を返します。今回は、「平日」を入力すると「今日は仕事があります。」と表示し、そのほかを入力した場合は何もしません。

■ if else文

次に、「もし、今日が平日ならば仕事に行く、その他の場合は、遊びに行く」というような、「もし、~であれば、~をし、その他の場合は、~する」という条件を見てみましょう。if else文は条件式がtrueと判断されたときと、falseと判断されたときにそれぞれの処理が実行されます。

if文の書式
if(条件式){
  処理1;
}else{
  処理2;
}

if else文

例:
 if(num == 1){
  System.out.println(“1です。”):
 }else{
  System.out.println(“1ではありません。”):
 }

○ ファイル

「IfTest1.java」をコピーして、次のようにファイル名を変更してください。

ファイル名 IfTest2.java

サンプルダウンロード

○ プログラム

次のようにプログラムを入力してください。

IfTest2.java

  1. import java.io.*;
  2. class IfTest2{
  3.     public static void main(String[] args) throws Exception{
  4.         //変数の宣言をする
  5.         String str;
  6.         //データを入力する準備をする
  7.         BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
  8.         //データを入力する
  9.         System.out.print("「平日」か「休日」を入力してください:");
  10.         str = br.readLine();
  11.         //入力データによって処理を分岐する
  12.         if(str.equals("平日")){
  13.             System.out.println("今日は仕事があります。");
  14.         }else{
  15.             System.out.println("今日は遊びに行きましょう。");
  16.         }
  17.     }
  18. }

○ コンパイルと実行

C:¥work>javac IfTest2.java
C:¥work>java IfTest2
「平日」か「休日」を入力してください:平日
今日は仕事があります。

C:¥work>java IfTest2
「平日」か「休日」を入力してください:休日
今日は遊びに行きましょう。

C:¥work>

○ フローチャート

if elseフローチャート

○ 解説

15行目では、入力したデータを比較しています。条件として変数strに格納されているデータが「平日」と等しければ、16行目の命令文で画面に表示されます。17行目では、else文が記述されているので、条件が満たされない場合は18行目の命令文でメッセージが表示されます。

入力内容によって「今日は仕事があります。」か「今日は遊びに行きましょう。」が表示されます。今回のサンプルでは「平日」と入力されれば「今日は仕事があります。」と表示され、それ以外を入力すると「今日は遊びに行きましょう。」と表示されます。

■ if elseif else文

次に、「もし、今日が平日ならば仕事に行く、その他もし、休日ならば遊びに行く、その他の場合は、なにもしない」というような、「もし、~であれば、~をし、その他もし~であれば、~をし、その他の場合は、~する」という条件を見てみましょう。 if elseif else文は条件式がtrueと判断されたときは処理を、falseと判断されたときはさらに次の条件式を判断します。

if文の書式
if(条件式1){
  処理1;
}else if(条件式2){
  処理2;
}else{
  処理3;
}

if elseif else文

例:
 if(num == 1){
  System.out.println(“1です。”):
 }else if(str.squals(“1”)){
  System.out.println(“数字の1です。”):
 }else{
  System.out.println(“1ではありません。”):
 }

○ ファイル

「IfTest2.java」をコピーして、次のようにファイル名を変更してください。

ファイル名 IfTest3.java

サンプルダウンロード

○ プログラム

次のようにプログラムを入力してください。

IfTest3.java

  1. import java.io.*;
  2. class IfTest3{
  3.     public static void main(String[] args) throws Exception{
  4.         //変数の宣言をする
  5.         String str;
  6.         //データを入力する準備をする
  7.         BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
  8.         //データを入力する
  9.         System.out.print("「平日」か「休日」を入力してください:");
  10.         str = br.readLine();
  11.         //入力データによって処理を分岐する
  12.         if(str.equals("平日")){
  13.             System.out.println("今日は仕事があります。");
  14.         }else if(str.equals("休日")){
  15.             System.out.println("今日は遊びに行きましょう。");
  16.         }else{
  17.             System.out.println("今日は家でおとなしくしていましょう。");
  18.         }
  19.     }
  20. }

○ コンパイルと実行

C:¥work>javac IfTest3.java
C:¥work>java IfTest3
「平日」か「休日」を入力してください:平日
今日は仕事があります。

C:¥work>java IfTest3
「平日」か「休日」を入力してください:休日
今日は遊びに行きましょう。

C:¥work>java IfTest3
「平日」か「休日」を入力してください:その他
今日は家でおとなしくしていましょう。

C:¥work>

○ フローチャート

if elseif elseフローチャート

○ 解説

16行目では、入力したデータを比較しています。条件として変数strに格納されているデータが「平日」と等しければ、17行目の命令文で画面に表示されます。18行目では、「else if」文が記述されているので、16行目の比較で等しくなければ、さらに入力データを比較します。条件として変数strに格納されているデータが「休日」と等しければ、19行目の命令文で画面に表示されます。20行目では、「else」文が記述されているので、16、18行目の条件が満たされない場合は21行目の命令文でメッセージが表示されます。

「else if」文は複数指定することができます。また、「else」文は省略することもできます。

前へ   次へ