for文例題

例題1から3までをアプレット化したプログラムの実行

例題1. 1から10までの整数を表示する

カウンタの変数はiです。カウンタの初期値を1にし、カウンタの値が10以下のときにカウンタの値を表示させます。

// 1から10までの整数の表示
class Ex_for_01 {
  public static void main(String args[]){
    int i;

    System.out.println("1から10までの整数を表示します。");

// for文による繰り返し
    for (i = 1; i <= 10; i++){
      System.out.println(i);
    }
  }
}

例題2. 1から10までの整数を逆順で表示する。

例題1の初期値、条件、増減の指定を変えればよい。

// 10から1までの整数の表示
class Ex_for_02 {
  public static void main(String args[]){
    int i;

    System.out.println("10から1までの整数を表示します。");

// for文による繰り返し
    for (i = 10; i >= 1; i--){
      System.out.println(i);
    }
  }
}

例題3. 1から100までの整数を10間隔で表示する。

例題1の増減の指定を10ずつ増やすにすればよい。

// 1から100までの整数を10間隔で表示
class Ex_for_03 {
  public static void main(String args[]){
    int i;

    System.out.println(" 1から100までの整数を10間隔で表示");

// for文による繰り返し
    for (i = 1; i <= 100; i+=10){
      System.out.println(i);
    }
  }
}

例題4. 0より大きい整数nを入力し、1からnまでの整数を表示する。

アプレット化したプログラムの実行

// 1からnまでの整数を表示。nは入力する。
import java.io.*;
import java.text.*;

class Ex_for_04 {
  public static void main(String args[]){
    int i,n;

    BufferedReader BF = new BufferedReader(new InputStreamReader(System.in));
    DecimalFormat DF = new DecimalFormat();
    String s;
    Number Num;

    System.out.println(" 1からnまでの整数を表示");
    System.out.print("nの値を入力してください");

// nの入力
    try {
      s = BF.readLine();
      Num = DF.parse(s);
      n = Num.intValue();
    }
    catch (IOException e) { n = 1;}
    catch (ParseException e) { n = 1; }

// nが0より大きいときのみ繰り返し処理
    if (n > 0) {

// for文による繰り返し
      for (i = 1; i <= n; i++){
        System.out.println(i);
      }
    } else {
      System.out.println("nが0以下なので表示しません");
    }
  }
}

例題5. 合計と平均

繰り返しを使うと合計と平均を容易に計算できる。

5つの整数を読み取り、その合計と平均を求める。

合計を求めるときのポイント

アプレット化されたプログラムの実行

// 1からnまでの整数を表示。nは入力する。
import java.io.*;
import java.text.*;

class Ex_for_05 {
  public static void main(String args[]){
    int i, n, g;  // カウンタ、入力数値、合計
    double h;     // 平均

    BufferedReader BF = new BufferedReader(new InputStreamReader(System.in));
    DecimalFormat DF = new DecimalFormat();
    String s;
    Number Num;

    System.out.println("5つの整数を入力し、その合計と平均を求める表示");
    System.out.println("---------------------------------------------");

// 合計を記憶する変数gの初期値を0に設定する。
    g = 0;

// 5回の繰り返しで合計を計算
    for (i = 1; i <= 5; i++){
      System.out.print(i + "個目の整数を入力してください :");
      try {
        s = BF.readLine();
        Num = DF.parse(s);
        n = Num.intValue();
      }
      catch (IOException e) { n = 0;}
      catch (ParseException e) { n = 0; }

// 合計の計算
      g = g + n;
    }

// 平均の計算
    h = g / 5.0;
    System.out.println("平均は" + h + "です");
  }
}

例題6. 二重ループ

forループの中にforループを入れ子にしたものを二重ループといいます。

ここでは5回のループの中に5回のループを入れ子にして合計25回のループでそれぞれのカウンタの変数を表示する例を示します。

最初のループのカウンタには変数aを入れ子にしたループには変数bを使っています。

class Loop_ex {
  public static void main(String args[]){
    int a, b;

// 最初のループ
    for (a = 1; a <= 5; a++){
// 入れ子にしたループ
      for (b = 1; b <= 5; b++){
        System.out.println("a=" + a + "\tb=" + b);
      }
    }
  }
}

入れ子にすると最初のループのある値に対して入れ子にしたループが指定された回数繰り返されます。これを最初のループが終わるまで繰り返します。

このプログラムを時移行すると次のような表示になります。

a=1     b=1
a=1     b=2
a=1     b=3
a=1     b=4
a=1     b=5
a=2     b=1
a=2     b=2
a=2     b=3
a=2     b=4
a=2     b=5
a=3     b=1
a=3     b=2
a=3     b=3
a=3     b=4
a=3     b=5
a=4     b=1
a=4     b=2
a=4     b=3
a=4     b=4
a=4     b=5
a=5     b=1
a=5     b=2
a=5     b=3
a=5     b=4
a=5     b=5