参考
javaバイブルシリーズ Java入門
P109 演習問題4.5より
以下のような九九表を表示させるプログラムをfor文とwhile文のプログラムで作成しろという問題にチャレンジ
***********
>java Kuku??
1 2 3 4 5 6 7 8 9
2 4 6 8 10 12 14 16 18
3 6 9 12 15 18 21 24 27
4 8 12 16 20 24 28 32 36
5 10 15 20 25 30 35 40 45
6 12 18 24 30 36 42 48 54
7 14 21 28 35 42 49 56 63
8 16 24 32 40 48 56 64 72
9 18 27 36 45 54 63 72 81
***********
P102 確認問題4.2より
こんなプログラムがあった。
------
public class Trace3 {
public static void main(String[] args) {
for (int i = 1; i < 4; i++) {
for (int j = 1; j <= i; j++) {
System.out.print(" " + (i * j));
}
System.out.println();
}
}
}
------
実行結果は以下
******
>java Trace3
1
2 4
3 6 9
******
Trace3.javaを編集すれば、九九表がとけそうだ。
そして編集して何度かトライアンドエラーを実施してfor文のパターンは完成
------
public class Kuku2 {
public static void main(String[] args) {
for (int i = 1; i < 10; i++) {
for (int j = 1; j < 10; j++) {
System.out.print(" " + (i * j));
}
System.out.println();
}
}
}
------
実行結果
******
>java Kuku2
1 2 3 4 5 6 7 8 9
2 4 6 8 10 12 14 16 18
3 6 9 12 15 18 21 24 27
4 8 12 16 20 24 28 32 36
5 10 15 20 25 30 35 40 45
6 12 18 24 30 36 42 48 54
7 14 21 28 35 42 49 56 63
8 16 24 32 40 48 56 64 72
9 18 27 36 45 54 63 72 81
******
続いてwhile文で作成
P88よりfor文とwhile文の相違点をチェック
whileの場合
---------------------
i = 1; // ④ iを1に初期化
while (i <= 10) { // ⑤ iが10以下のとき繰り返す
sum += i; // ⑥ 累計エリアにiを加算
i++; // ⑦ iをカウントアップ
}
---------------------
forの場合
---------------------
for (i = 1; i <= 10; i++) { // ④、⑤、⑦
sum += i; // ⑥ 累計エリアにiを加算
}
---------------------
何度かトライアンドエラーを繰り返し、while文のパターンも完成。
ポイントは上記④のように初期化の宣言を追記したこと。ついきしないとコンパイルでエラー。
------
public class Kuku1 {
public static void main(String[] args) {
int i;
int j;
i = 1;
while (i < 10) {
j = 0;
while (j < 9) {
j++;
System.out.print(" " + (i * j));
}
i++;
System.out.println();
}
}
}
------
実行結果
******
>java Kuku1
1 2 3 4 5 6 7 8 9
2 4 6 8 10 12 14 16 18
3 6 9 12 15 18 21 24 27
4 8 12 16 20 24 28 32 36
5 10 15 20 25 30 35 40 45
6 12 18 24 30 36 42 48 54
7 14 21 28 35 42 49 56 63
8 16 24 32 40 48 56 64 72
9 18 27 36 45 54 63 72 81
******