tonkat-prtq / java-bingo-app

0 stars 0 forks source link

ビンゴカードに、数字を格納する処理で、IndexOutOfBoundsExceptionを避けるためのif文 #2

Closed tonkat-prtq closed 2 years ago

tonkat-prtq commented 2 years ago

コード https://github.com/tonkat-prtq/java-bingo-app/blob/0608_add_rd_and_class_to_readme/src/com/company/BingoCard.java

IndexOutOfBoundsExceptionの発生を避けるために、下記のようなコードを追加したが、どうやら無駄そう。

https://github.com/tonkat-prtq/java-bingo-app/blob/a7e013788905ce0d56db3716c6e0e519956fb7a4/src/com/company/BingoCard.java#L38-L45

numListを拡張for文とかで回せたら、わざわざ counter = 0とリセットしなくて良いかもしれない。

naotine commented 2 years ago

@tonkat-prtq https://github.com/tonkat-prtq/java-bingo-app/blob/09addf3e653964d56e242790dd046fa077cd8e22/src/com/company/BingoCard.java#L10 counterはnumListのインデックスを指定するためだけの値になっており、BingoCardのメンバ変数として持つべき値ではないですね。ローカル変数としてcounterを定義するべきです。

https://github.com/tonkat-prtq/java-bingo-app/blob/09addf3e653964d56e242790dd046fa077cd8e22/src/com/company/BingoCard.java#L32-L37 上記箇所を修正するならこんな感じ。

                for (int j = 0; j < columns; j++) {
                    int counter = 0;
                    cardNumber[j][i] = numList.get(counter) + (i * 15);
                    counter++;
                }
tonkat-prtq commented 2 years ago

確かに、ループ処理で使うためだけにcounterという変数をメンバとして持つのは不適切ですね!

tonkat-prtq commented 2 years ago

counterを使う実装をやめたため、closeします。