ほぷしぃ

Java言語入門 〜C言語を学んだ君へ〜

[第5回]繰り返し処理

[1] 繰り返し処理

まずは繰り返し処理から説明していきます。
C言語で知った知識がJavaで活用することができます。

Javaで新しくできる点
Javaで変更になった点

学習する時に上のの2点に気をつけて進めていきましょう。

[2] for文

繰り返し処理の最初はfor文から学習しましょう。
for文といえば以下のように記述しました。

for文書式

for (初期化式; 条件式; 増減式){
    処理内容
}

for文でこの記述方法は、Javaでも同様に使うことができます。
では、実際にサンプルを書いて実行してみてください。

サンプルプログラム1 ファイル名:Java05_01.java

public class Java05_01{
    public static void main(String args[]){
        int i;
        for( i = 1; i < 10; i++){
            System.out.println("処理は"+ i + "回目です");
        }
    }
}

実行結果

実行結果

どうですか?C言語と同じように実行できたはずです。
同じような記述ができたところで、次はJavaでできるfor文を見てみましょう。
以下のサンプルになるようにソースを変更してみてください。

サンプルプログラム2 ファイル名:Java05_01

public class Java05_01{
    public static void main(String args[]){
        for( int i = 1; i < 10; i++){
            System.out.println("処理は"+ i + "回目です");
        }
    }
}

実行結果

実行結果

前のプログラムと全く同じ動きをしました。
Javaでは、変数宣言はどこでもできると説明しました。
for文の開始時に宣言しても全く構わないのです。
C言語のときのように変数宣言を忘れてもわざわざ最初に戻る必要がありません。

ただし、このやり方だとひとつ注意することがあります。
今のサンプルを以下のようにしてみてください。

サンプルプログラム3

public class Java05_01{
    public static void main(String args[]){
        for( int i = 1; i < 10; i++){
            System.out.println("処理は"+ i + "回目です");
        }
        System.out.println(i); //ここはエラーになる
    }
}

プログラムの解説

上のように書くと、System.out.println(i);はエラーになってしまいます。
for文の中に宣言を行うと、そのループ内でのみ通用するということを忘れないで下さい。
これの詳細については第8回「継承」にて説明します。
ここは間違いやすいポイントです。

[3] while文

2つ目に学ぶ繰り返し処理はwhile文です。
while文もC言語と同様に使うことができます。
ここで、while文について復習をしてみましょう。

while文の書式

while (条件式){
    処理の内容
}

C言語と使い方は変わりません。

サンプルプログラム1 ファイル名:Java05_02.java

public class Java05_02{
    public static void main(String args[]){
        int i = 10;
        while (i > 0){
            System.out.println("処理は"+ i + "回目です");
            i--;
        }
    }
}

実行結果

実行結果

これは特に説明は必要がないと思います。C言語で使っていたように使うことができます。
もちろんdo-while文もJavaで使うことができます。

[4] boolean型

ここで、boolean型について説明しておきたいと思います。
boolean型とは"true"か"false"を格納できるデータ型です。
このboolean型はJava言語で無限ループの使用するときに使います。
C言語でwhile文を使った無限ループを書いた時に以下のように使いました。

C言語の無限ループ

while(1){
    処理内容
}

と書いたと思いますが、これを使うことはできません。
Javaで、同様な動作を起こすときにはこのようにします。

Java言語の無限ループ

while(true){
    処理内容
}

while(1){...}と同様の働きを作成したい場合にはJavaでは、while(true){..}とします。
C言語でこのループを抜けるときに使用したbreakもJavaで同じように使うことができます。
さて、ここまで説明してこなかったことを説明しましょう。
上のプログラム(Java05_02)では、while(i > 0){.....}と書いています。
この"(i > 0)"の部分に注目してください。このプログラムの内部処理

System.out.println("処理は"+ i + "回目です");

は"(i > 0)"の時に実行されています。これは分かると思います。
つまり"(i > 0)"はこの条件式が満たされて、trueだから実行されているのです。
このwhileが終了するときに"(i > 0)"を満たなさない、つまりfalseだから実行されないのです。

Java05_02プログラムのSystem.out.println("処理は"+ i + "回目です");
System.out.println(i > 0);に変えてみてください。
出力される結果が"true"になるはずです。この"i > 0"が満たされていない場合には"false"が出力されます。
これを使うとプログラムを作成しているときに今の値が条件を満たしているのか確認ができます。

上の条件式がtrueの時にwhile内が実行され、条件式がfalseの時には実行されません。
継続条件がtrueというのは値同士を比較して"真"だったというのも当てはまります。

ここで説明したboolean型はプログラムを組む時に使う場面も多いはずです。
使い方は確実に理解しておきましょう。



前のページへ ページのトップへ 次のページへ