【Java初心者向け】for文とwhile文で九九表を作る方法

今日は授業で for文を使って九九表を作れ という課題が出ました。
とはいえ、昔 C言語の授業 でやったことがあったので、割と楽勝でした。
さらに、PHP でもコーディングしていたので、九九表の実装はすぐに想像できました。

でも、ふと 「昔の自分」 を思い出してみると、前の専門学校では九九表を作るだけでかなり苦労した記憶があります。
こうやって成長を実感できると、ちょっと嬉しいですね!

九九表をメソッドで呼び出す形にしてみた

せっかくなので、今日の授業で書いたソースを載せようかと思いましたが、
課題そのままを載せるのもどうかと思ったので、メソッドを呼び出して表示する形 にして書き直してみました。

しかも for文バージョン と while文バージョン の2パターンを実装!
それぞれの書き方を比較しながら、Java の基礎をしっかり学んでいきます。

for文を使った九九表

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
public class For2 {
    public static void main(String[] args) {
        for (int i = 1; i < 10; i++) {
            multi(i); // multiメソッドの呼び出し
        }
    }

    private static void multi(int i) {
        for (int j = 1; j < 10; j++) {
            if (i * j < 10) {
                System.out.print("  " + (i * j)); // 1桁の数値は揃える
            } else {
                System.out.print(" " + (i * j));
            }
        }
        System.out.println(); // 改行
    }
}

実行結果

1
2
3
4
5
6
7
8
9
  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

しっかり メソッド(multi)を呼び出して表示する形 にしました! また、1桁の数字(1~9)と2桁の数字(10以上)の 表示位置を調整 して、見やすくしています。

while文を使った九九表

次に、while文を使ったバージョンを作ってみました。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
public class While2 {
    public static void main(String[] args) {
        int i = 1;
        while (i < 10) {
            i = multi(i);
        }
    }

    private static int multi(int i) {
        int j = 1;
        while (j < 10) {
            if (i * j < 10) {
                System.out.print("  " + (i * j)); // 1桁の数値は揃える
            } else {
                System.out.print(" " + (i * j));
            }
            j++;
        }
        System.out.println(); // 改行
        return ++i;
    }
}

実行結果

1
2
3
4
5
6
7
8
9
  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

メソッドの作成でちょっと苦労した…

実はこの multi メソッド、最初はうまく書けなくて ちょっと苦戦 しました。 Java のメソッドの書き方って、細かいルールが多くて面倒なんですよね…。

特に PHP ユーザーとしては、

  • 戻り値の型(return で返す値の型)を 明示的に指定しなきゃいけない
  • 引数の型 も指定しなきゃいけない

というのが、少し ダルい ところ。 例えば、このコード👇

1
private static int multi(int i);

この int って書く部分、PHP だったら何も書かなくても動くんですよね……。

でも、Java では 戻り値が int なら int、戻り値がない場合は void を指定しなきゃいけない。 こういう型指定のルールをしっかり理解しておかないと、コンパイルエラーになってしまうので注意が必要です。

PHPとJavaの違い

改めて PHP と Java の違いをまとめると、

比較項目 PHP Java
型の指定 必須ではない 必須(戻り値・引数含む)
戻り値の型 省略可能 void, int などを明示
メソッドの書き方 簡単 明示的な型指定が必要
ループ処理 比較的自由 ルールが厳格

とにかく Java は「型をしっかり意識する」必要があるということですね。 (注意: PHP7からは型が導入されているので、Java同様に型をしっかりと意識する必要があります)

まとめ

  • for文・while文で九九表を作成 してみた
  • メソッドを活用 してコードを整理
  • Java のメソッドは型の指定が必須 で PHP とは違いがある
  • 特に戻り値の型(void, intなど)をしっかり定義することが重要

Java は型指定が面倒だけど、その分しっかり学ぶとエラーが減る! 少しずつ慣れていこうと思います。

おすすめ記事

【Java初心者向け】オブジェクト指向を意識した九九表の実装
【Java初心者向け】基礎から学ぶキャスト(型変換)の重要ポイント

カテゴリ

comments powered by Disqus