配列と繰り返し

配列の値を合計

配列の課題であった Goukei.java をforを使って実行します。

要素数は 9 ですが、9 と入れないで、kazu.length を使います。データを増やした時にも直さなくてよいので、この方が楽です。

goukei には値をどんどん足していきますから、初期値は 0 とします。

kazu[0]に78,kazu[8]に84が入ります。従って繰り返しでは i は、0~8 の範囲になります。

ファイル名 Goukeifor.java

public class Goukeifor { 
    public static void main( String[] args ) {
        int[] kazu = {78,45,65,35,92,63,57,89,84};
        double goukei = 0; //goukeiを宣言して値を初期化している
        for ( int i=0; kazu.length > i ;i++ ){
            System.out.println( i + " " + kazu[i] );
            goukei = goukei + kazu[i];
        }
        System.out.println( "合計は " + goukei );
        System.out.println( "平均は " + goukei/kazu.length );
    }
}

次のように表示されます。0 78 ~ 8 84 までは合計や平均を求めるのには必要ないですが、for の動作の確認のために入れました。

$ java Goukeifor
0 78
1 45
2 65
3 35
4 92
5 63
6 57
7 89
8 84
合計は 608.0
平均は 67.55555555555556

文字列の配列だけ繰り返し

文字列の配列の課題であった Aisatsu.java をforを使って実行します。

名前を配列に読んで挨拶を表示するプログラムを作りなさい。

ファイル名 Aisatsufor.java

public class Aisatsufor { 
    public static void main( String[] args ) {
        String[] names = {"鈴木","田中","山田","佐藤","齋藤"};
        for ( int n=0; names.length > n ; n++ ){
            System.out.println( names[n] + "さん こんにちは" );
        }
        System.out.println( names.length + "人にあいさつしました。" );
    }
}

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

$ java Aisatsufor
鈴木さん こんにちは
田中さん こんにちは
山田さん こんにちは
佐藤さん こんにちは
齋藤さん こんにちは
5人にあいさつしました。

引数の数だけ繰り返し

コマンドライン引数の課題であった Aisatsu2.java をforを使って実行します。

args.lengthを使って引数がいくつの時でも,引数の数だけ挨拶をするプログラムにしなさい。

ファイル名 Aisatsuarg.java

public class Aisatsuarg { 
    public static void main( String[] args ) {
        for ( int i=0 ; args.length > i ; i++ ){
            System.out.println( args[i] + "さん こんにちは" );
        }
        System.out.println( args.length + "人にあいさつしました。" );
    }
}

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

$ java Aisatsuarg 鈴木 田中 Hoge Alice Bob 齋藤 
鈴木さん こんにちは
田中さん こんにちは
Hogeさん こんにちは
Aliceさん こんにちは
Bobさん こんにちは
齋藤さん こんにちは
6人にあいさつしました。

上記のプログラムでは引数の数が 0 の時は1回もあいさつをしません。例外は生じません。

$ java Aisatsuarg
0人にあいさつしました。

課題

1.

上記の Goukeifor.java を作りなさい。

ファイル名 Goukeifor.java

2.

上記の Aisatsufor.java を作りなさい。

ファイル名 Aisatsufor.java

3.

上記の Aisatsuarg.java を作りなさい。

ファイル名 Aisatsuarg.java

4.

配列にいれた試験の点数の合計と平均を求めるプログラムを途中まで下に示した。これを完成させなさい。

結果はこのページの課題1のように表示されるようにしなさい。

ファイル名 Goukeifor2.java

//この部分に class, main をいつもの様に書き加え、字下げをする。
int[] tensuu = {86,87,72,64,81,76,82,43,56,76,80};
//ここに goukei を宣言して値を初期化する文を書く。
for ( int n=0; n が配列の範囲内ならば ; 次の n ){
    System.out.println( n + " " + tensuu[n] );
    goukei = goukei + tensuu[n];
}
//ここに合計を表示する文を書く。
//ここに平均を表示する文を書く。
//この部分に  } を必要数入れる。

5.

名前を配列に読んで次々にあいさつを表示するプログラムを途中まで下に示した。これを完成させなさい。

これを実行したら次のように表示されるようにしなさい。

$ java Aisatsufor2
鈴木さんが田中さんに あいさつしました。
田中さんが山田さんに あいさつしました。
山田さんが佐藤さんに あいさつしました。
佐藤さんが齋藤さんに あいさつしました。
あいさつがおわりました。

ファイル名 Aisatsufor2.java

//この部分に class, main をいつもの様に書き加え、字下げをする。
String[] hito = {"鈴木","田中","山田","佐藤","齋藤"};
for ( /*ここを考える*/ ){
    System.out.print  ( hito[n] + "さんが" );
    System.out.println( hito[n+1] + "さんに あいさつしました。" );
}
System.out.println( "あいさつがおわりました。" );
//この部分に  } を必要数入れる。

6.

課題3の Aisatsuarg.java を、引数がないときには、「相手がいないとあいさつできません」と表示するプログラムにしなさい。

args.lengthを使って引数がいくつの時でも,引数の数だけ挨拶をするプログラムにしなさい。

ファイル名 Aisatsuarg2.java

//この部分に class, main をいつもの様に書き加え、字下げをする。
if ( /* ここを考える */ ){
    for ( int i=1 ; args.length > i ; i++ ){
        System.out.println( args[i] + "さん こんにちは" );
    }
    System.out.println(  args.length + "人にあいさつしました。" );
}
else{
    //ここを考える
}
//この部分に  } を必要数入れる。

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