0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

問題に対してのアプローチ

Posted at

#問題
以下のように00~99までの数字を並べて表示するプログラムを作成してください。

00 01 02 03 04 05 06 07 08 09
10 11 12 13 14 15 16 17 18 19
20 21 22 23 24 25 26 27 28 29
30 31 32 33 34 35 36 37 38 39
40 41 42 43 44 45 46 47 48 49
50 51 52 53 54 55 56 57 58 59
60 61 62 63 64 65 66 67 68 69
70 71 72 73 74 75 76 77 78 79
80 81 82 83 84 85 86 87 88 89
90 91 92 93 94 95 96 97 98 99

この問題を解くためのプログラムを作成しようとしたときに、整数型ではなく文字列といて扱おうと最初考えた。しかし、出力するときには
i0123456789i0123456789i0123456789i0123456789i0123456789i0123456789i0123456789i0123456789i0123456789i0123456789
ように出力された。

#問題点
1,iがそのまま文字列として結合されている点
└iは文字列、jは整数型として出力されているので、最初に考えた文字列として扱うというのは失敗だった。

2,00や01を出力するフォーマットが正しくない

3,改行の処理がない
└各行の出力結果が全て1行にまとまっているので改行するものが抜けていた。

#反省点
・iとjのデータ型の理解不足
└文字列として扱うべきところと、整数として扱うべきところを区別できていない

・内側ループの処理設計不足
└iとjを組み合わせて2桁の数字を生成するロジックを構築できていない。また、ループがどのように動作するかを考えずに設計してしまった。

・改行の処理の考慮
└出力形式に改行が含まれていることを考えなかった。

#アプローチ方法
1,問題を分解する
・2桁の数字を生成する
・10個ずつ出力して改行する
・00~99まで出力を繰り返す

2,必要なロジックを設計する
・外側のループ:10の位(i)を担当するループを作成する(0~9)
・外側のループ:1の位(j)を担当するループを作成する(0~9)
・iとjを2桁の数字として表示するためのフォーマットを使う

3,出力形式を意識する
・各桁10個の数字のあとに改行を入れる
・1行10個ずつ整列させる

4,コードを実装する

Ex1_10_31.java
class Ex1_10_31 {
    public static void main(String[] args) {
        // 最終的に表示するString型変数(初期値:""(0文字の文字列))
        String display = "";

        // 外側のfor文は行を表す
        for (int i = 0; i < 10; i++) { 
            // 内側のfor文は列を表す
            for (int j = 0; j < 10; j++) {
                // 2桁の形式で数字を追加
                display += String.format("%02d ", i * 10 + j);
            }
            // 1行ごとに改行を追加
            display += "\n";
        }

        // すべての数字を表示
        System.out.println(display);
    }
}

#String.formatの使用例
1,数値や文字列のフォーマット
2,整列された表の作成
3,日付や時間のフォーマット
4,ログやデバッグメッセージの作成
5,ユニットテストの補助
6,国や文化に合わせたローカライズ

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?