【Java】九九表を作成（桁数を合わせる）

九九表を作成する。

```Test1.java
public class Test1{
	public static void main(String[] args) {
		for(int i=1; i<=9; i++) {
			System.out.println();
			
			for(int j=1; j<=9; j++) {
				System.out.printf(" %3d", (i * j));
			}
		}
	}
}

```

```実行結果.

   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

```

#流れ
↓こんな感じ、伝われっっっ!!!


iが1~9に増加
　iのn(1~9番目)が終わったら改行する
　iがn(1~9)の時にjが1~9に増加
　　今のiの値とjの値を掛け算する
　　掛け算の結果を出力(スペース ＆ 3桁で統一)

#（なんとなく）拡張してみたｗ
iとjの上限値を18まであげただけ。
覚えられるといいね(^^)/

```Test2.java
public class Test2{
	public static void main(String[] args) {
		for(int i=1; i<=18; i++) {
			System.out.println();
			
			for(int j=1; j<=18; j++) {
				System.out.printf(" %3d", (i * j));
			}
		}
	}
}

```

```実行結果.

   1   2   3   4   5   6   7   8   9  10  11  12  13  14  15  16  17  18
   2   4   6   8  10  12  14  16  18  20  22  24  26  28  30  32  34  36
   3   6   9  12  15  18  21  24  27  30  33  36  39  42  45  48  51  54
   4   8  12  16  20  24  28  32  36  40  44  48  52  56  60  64  68  72
   5  10  15  20  25  30  35  40  45  50  55  60  65  70  75  80  85  90
   6  12  18  24  30  36  42  48  54  60  66  72  78  84  90  96 102 108
   7  14  21  28  35  42  49  56  63  70  77  84  91  98 105 112 119 126
   8  16  24  32  40  48  56  64  72  80  88  96 104 112 120 128 136 144
   9  18  27  36  45  54  63  72  81  90  99 108 117 126 135 144 153 162
  10  20  30  40  50  60  70  80  90 100 110 120 130 140 150 160 170 180
  11  22  33  44  55  66  77  88  99 110 121 132 143 154 165 176 187 198
  12  24  36  48  60  72  84  96 108 120 132 144 156 168 180 192 204 216
  13  26  39  52  65  78  91 104 117 130 143 156 169 182 195 208 221 234
  14  28  42  56  70  84  98 112 126 140 154 168 182 196 210 224 238 252
  15  30  45  60  75  90 105 120 135 150 165 180 195 210 225 240 255 270
  16  32  48  64  80  96 112 128 144 160 176 192 208 224 240 256 272 288
  17  34  51  68  85 102 119 136 153 170 187 204 221 238 255 272 289 306
  18  36  54  72  90 108 126 144 162 180 198 216 234 252 270 288 306 324

```

#課題
上記のコードには課題がありました。
それは「<font color = red>実行結果の1行目が改行されてしまっている</font>」こと。

僕の知識(というか考え方？)では、ぱっと改善できなかったので、紙とペンを用意して流れを書いてみました。。。

◆Test1.javaの流れ（分かりにくいけどｗ）
　1.　i=1の処理開始
　2.　<font color=red>改行</font>
　3.　j=1~9の処理開始
　4.　1~3の繰り返し

簡単に言葉で書くとこんな感じ。
2の改行で出力結果の1行目が改行されてしまう。

てことは、2の改行を消す？
そしたら、i=1の時の処理が終わった後に改行されずに1行にすべて出力されるからNG

<font color=red>理想の出力結果は、j=1~9の処理が終わった後に、改行すること。</font>
（感の悪い僕は、この辺で気づきましたｗ）

j=1~9の処理が終わった後に、改行するようにしたコードは👇

```Test3.java
public class Test2{
	public static void main(String[] args) {
		for(int i=1; i<=9; i++) {
			//System.out.println();  //ここじゃなくて
			
			for(int j=1; j<=9; j++) {
				System.out.printf(" %3d", (i * j));
			}
			System.out.println();  //ここ
		}
	}
}
```

```実行結果.
   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
```

うん、いいね、できた!!!