トップ 新規 編集 差分 一覧 ソース 検索 ヘルプ PDF RSS ログイン

Javaの文法:制御文‐魴鑛岐

制御文

  • 制御文とはプログラムの処理の流れを条件に応じて変更するもので、条件分岐や条件に応じて繰り返し処理を行うために用意されている。

制御文−条件分岐

  • プログラムではしばしば「もし○○ならば××せよ」という形で、条件に応じ、実行する処理を変えるコード(条件分岐)が必要となるが、条件分岐を実現するさいに利用されるのがif文、switch〜case文などである。

 if文

  • if文とは「もし○○ならば××せよ」の○○の部分が真偽の値となる変数あるいは式の条件分岐である。

if文の構文

  • if文は<条件式>の部分に結果がbooleanで表わされる評価式を、<条件式>がtrueの場合に実行される処理を<処理>に記述する。
if (<条件式>) {
	<処理>;
}
  • 処理が一文だけの単純なif文は{}を使わず、以下のようにも書くことができる。
  • しかし、処理の流れが明確にわかるように単純なif文でもできるだけ、上記のように書いておいた方がよい。
if (<条件式>) <処理>;

if文のサンプルプログラム

1
2
3
4
5
6
7
8
9
10
package sample.flow;

public class SimpleIf {
    public static void main(String[] args) {
        int v=5;
        if(v>3) {
            System.out.println("変数vは3より大きい");
        }
    }
}

 if〜else文

  • if〜else文とはif文の真の場合だけではなく、偽の場合にも処理をかけるように拡張したものであり、「もし○○ならば、××せよ。そうでなければ、△△せよ」の△△の部分の処理を書くことができる。

if〜else文の構文1

  • if〜else文は<条件式>の部分に結果がbooleanで表わされる評価式を、<条件式>がtrueの場合に実行される処理を<処理1>に記述し、条件式がfalseの場合に実行される処理を<処理2>に記述する。
if (<条件式>) {
	<処理1>;
} else {
	<処理2>;
}

if〜else文のサンプル1

1
2
3
4
5
6
7
8
9
10
11
12
package sample.flow;

public class SimpleIfElse {
    public static void main(String[] args) {
        int v=2;
        if(v>3) {
            System.out.println("変数vは3より大きい");
        } else {
            System.out.println("変数vは3以下である");
        }
    }
}

if〜else文の構文2

  • if〜else文は<条件式>の部分に結果がbooleanで表わされる評価式を、<条件式1>がtrueの場合に実行される処理を<処理1>に記述し、<条件式>がfalseの場合に今度は<条件式2>が評価され、trueならば<処理2>が、falseならば<処理3>が実行される。
if (<条件式1>) {
	<処理1>;
} else if(<条件式2>){
	<処理2>;
} else {
	<処理3>;
}

if〜else文のサンプル2

1
2
3
4
5
6
7
8
9
10
11
12
13
14
package sample.flow;

public class SimpleIfElseIf {
    public static void main(String[] args) {
        int v=4;
        if(v>5) {
            System.out.println("変数vは5より大きい");
        } else if(v>3) {
            System.out.println("変数vは3より大きく5以下である");
        } else {
            System.out.println("変数vは3以下である");
        }
    }
}

 switch〜case文

  • switch〜case文とはif文のように条件式の真偽判定ではなく、ある変数の値が複数の候補のどれに当たるかを判定する(多重判定)ためのものである。

構文

switch(<変数あるいは式>) {
  case <値1>:
	<処理1>;
	break;
  case <値2>:
	<処理2>;
	break;
  :
  case <値n>:
	<処理n>;
	break;
  default:	//それ以外の場合
	<処理x>;
}

switch〜case文のサンプル

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
package sample.flow;

public class SimpleSwitch {
    public static void main(String[] args) {
        int x=2;
        switch(x) {
            case 0:
                System.out.println("変数xの値は0です。");
                break;    //明示的にbreak文を入れないとその次の処理も行われてしまう
            case 1:
                System.out.println("変数xの値は1です。");
                break;
            case 2:
                System.out.println("変数xの値は2です。");
                break;
            case 3:
            case 4:    //この場合、3でも4でも処理が行われる
                System.out.println("変数xの値は3か4です。");
                break;
            default:
                System.out.println("変数xの値は0から4以外です。");
        }
    }
}

 三項演算子

  • if〜else文を一つの式で表現したもの。
    • プログラムの可読性がよくなくなるため、あまり使わず、素直にif〜else文で書いた方が無難である。

構文

<条件式>?<真で代入される値あるいは式>:<偽で代入される値あるいは式>

 課題

  1. 適当な数字を考え、それが5の倍数だったら「○○は5の倍数です。」と表示するプログラムを作成しなさい。
  2. 上のプログラムを変更し、5の倍数だったら「○○は5の倍数です。」と表示し、そうでなければ「○○は5の倍数ではありません。」と表示するプログラムを作成しなさい。
  3. 上のプログラムを変更し、5の倍数だったら「○○は5の倍数です。」と表示し、そうでなく、3の倍数だったら「○○は3の倍数です。」と表示し、そうでなければ「○○はは5の倍数でも3の倍数でもありません。」と表示するプログラムを作成しなさい。
SimpleIf.java SimpleIfElse.java SimpleIfElseIf.java SimpleSwitch.java

最終更新時間:2007年05月17日 10時43分27秒