for each

forのもう一つの使い方

java version 1.5 以降では、もう少し簡単な for の書き方が可能になっています。

public class Aisatsueach {
    public static void main( String[] args ) {
        for ( String name : args ){
            System.out.println( name + "さん こんにちは");
        }
        System.out.println( "あいさつがおわりました。" );
    }
}

これはargsがStringの配列なので、その要素をnameというStringの変数の中に代入して、argsの全要素について繰り返すという意味です。

nameは自分で決める変数なので、名前は自由に決めることができます。

課題

1.

コマンドラインから複数の名前を受け取って挨拶を表示するプログラムを作りなさい。

ファイル名 Aisatsueach.java

上記そのままです。

次のように表示されます。

$ java Aisatsueach 鈴木 田中 佐藤
鈴木さん こんにちは
田中さん こんにちは
佐藤さん こんにちは
あいさつがおわりました。

2.

複数の数値を引数として与えると全部の和を計算するプログラムをつくりなさい。

ファイル名 Tasueach.java

2つの引数を入れて実行すると、足し算をするプログラムを参考に。

public static void main( String[] args ) {

なので配列名はargsです。

for each を使うには

for ( String kazu : args ) {

です。数値を引数にとったとしても、mainの引数は文字列に決まっていますので、String[] args と文字列になっていることを忘れずに。

kazuはargsから一つ取ってくるデータを入れる変数ですが、argsが文字列なのでkazuも文字列です。kazuという名前は自分がわかりやすいものを選べます。

これを数値に直すには、整数と分かっているなら

Integer.parseInt(kazu);

小数点を含む数が入っている可能性があるなら

Double.parseDouble(kazu);

を使います。

どんどん足していくので、

s = s + n ;

または省略形で

s += n ;

とすればよいでしょう。

配列と繰り返しの Goukeifor.java も参考になります。


Javaプログラミング
聖愛中学高等学校
http://www.seiai.ed.jp/
Jun.2011