###前提・実現したいこと
javaで156個の配列にランダムでそれぞれ1~13の数字を同じ数だけ入れたいです。
マークが関係なくジョーカーが入っていないトランプを3組混ぜるイメージです。
mainのクラスで実行してみたら、無限ループしてしまい、試行錯誤の末、原因は被らないように判定するfor文せいで14個目以降、無限ループしてしまうことに気付きました。
が、これをどう直したらいいのかわからず躓いてしまいました。
初心者ゆえ読みづらいソースコードになっているかもしれませんがアドバイスお願いいたします。
###発生している問題・エラーメッセージ
無限ループ
###該当のソースコード
java
1class Gamesystem{ 2 Random r = new Random(); 3 private int[] card = new int[156]; 4 public void setcard(){ 5 int i = 0; 6 int count = 13; 7 for( ; count < card.length ; count += 13) 8 for( ; i < count ; i++){ 9 boolean flag = false; 10 card[i] = r.nextInt(13) + 1; 11 do { 12 flag = false; 13 for (int j = i - 1; j >= 0; j--) { 14 if (card[i] == card[j]) { 15 flag = true; 16 card[i] = (r.nextInt(13)+1); 17 } 18 } 19 } while (flag == true); 20 } 21 } 22 23
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/09/06 02:39