すべてを記述するプログラムから,for文を使ったプログラムへの進化
1.目的
以下のような表示をさせたい。
(0) A child says, "The king is naked." (1) A child says, "The king is naked." (2) A child says, "The king is naked." (3) A child says, "The king is naked." (4) A child says, "The king is naked." |
2.すべてを記述するプログラム
最初は,すべてを記述するプログラムを作成してみる。
/*For1a1.java by Kosaka*/ public class For1a1 { public static void main(String[] args) { For1a1 mainprg = new For1a1(); } For1a1() { System.out.printf("(0) "); System.out.printf("A child says, "); System.out.printf("\"The king is naked.\"\n"); System.out.printf("(1) "); System.out.printf("A child says, "); System.out.printf("\"The king is naked.\"\n"); System.out.printf("(2) "); System.out.printf("A child says, "); System.out.printf("\"The king is naked.\"\n"); System.out.printf("(3) "); System.out.printf("A child says, "); System.out.printf("\"The king is naked.\"\n"); System.out.printf("(4) "); System.out.printf("A child says, "); System.out.printf("\"The king is naked.\"\n"); } } |
3.値が変わるところを,数値表示のプログラムにする
/*For1a2.java by Kosaka*/ public class For1a2 { public static void main(String[] args) { For1a2 mainprg = new For1a2(); } For1a2() { System.out.printf("(%d) ",0); System.out.printf("A child says, "); System.out.printf("\"The king is naked.\"\n"); System.out.printf("(%d) ",1); System.out.printf("A child says, "); System.out.printf("\"The king is naked.\"\n"); System.out.printf("(%d) ",2); System.out.printf("A child says, "); System.out.printf("\"The king is naked.\"\n"); System.out.printf("(%d) ",3); System.out.printf("A child says, "); System.out.printf("\"The king is naked.\"\n"); System.out.printf("(%d) ",4); System.out.printf("A child says, "); System.out.printf("\"The king is naked.\"\n"); } } |
4.できるだけ,同じことを何回も書く形式に変更する
同じことを何回も書く形式のプログラムにすると,for文を使う道筋が見える。
値を直接表示するのではなく,変数iを用いると,同じ形が見えてくる。
プログラム中 i++;
というのは i=i+1; と同じ意味で,iの値を1増やせの意味となる。
/*For1a3.java by Kosaka*/ public class For1a3 { public static void main(String[] args) { For1a3 mainprg = new For1a3(); } For1a3() { int i; i=0; System.out.printf("(%d) ",i); System.out.printf("A child says, "); System.out.printf("\"The king is naked.\"\n"); i++; System.out.printf("(%d) ",i); System.out.printf("A child says, "); System.out.printf("\"The king is naked.\"\n"); i++; System.out.printf("(%d) ",i); System.out.printf("A child says, "); System.out.printf("\"The king is naked.\"\n"); i++; System.out.printf("(%d) ",i); System.out.printf("A child says, "); System.out.printf("\"The king is naked.\"\n"); i++; System.out.printf("(%d) ",i); System.out.printf("A child says, "); System.out.printf("\"The king is naked.\"\n"); } } |
このプログラムでは,つぎの形が何回も使われている
System.out.printf("(%d)
",i); |
5.ここでfor文を導入する
/*For1.java by Kosaka*/ public class For1 { public static void main(String[] args) { For1 mainprg = new For1(); } For1() { int i; for (i=0; i<5; i++) { System.out.printf("(%d) ",i); System.out.printf("A child says, "); System.out.printf("\"The king is naked.\"\n"); } } } |