java初心者です
現在、4桁の数当てゲーム(ヌメロン)を作っています
質問なのですが、標準入力で得られた数値を配列に格納したのち、その配列何に同じ数値が入っていないように確認し、入っていた場合それをやり直すようにするにはどうすればいいでしょうか?二重ループでやるのかなと考えたのですがさっぱりです。
//Aの部分から1文字ずつ入力していって、配列に格納していって、数字被りを認めないようにしたいです。
汚いコードですがよろしくお願いします。
該当のソースコード
Java
1//入力を読み込んで戻り値を返すメソッド 2 3public static int[] Us_kotae(){ 4 Scanner sc = new Scanner(System.in); 5 int[] kaitou =new int[4]; 6 System.out.println((challenge+1)+"回目の挑戦です"); 7 8//A 9 for(int f=0; f<kaitou.length; f++){ 10 int kagen=0; 11 if(f<kagen){ 12 f=0; 13 } 14 try{ 15 System.out.println((f+1)+"番目の数字を入力してください"); 16 String bb =sc.nextLine(); 17 int cc =Integer.parseInt(bb); 18 19 20 if (cc>=10 || cc<0) { 21 System.out.println("0~9を入力してください"); 22 f--; 23 throw new IllegalArgumentException(); 24 } 25 kaitou[f]=cc; 26 27 28 29 }catch(NumberFormatException e){ 30 System.out.println("正しい数字を入力して下さい"); 31 f--; 32 }catch(Exception e){ 33 System.out.println("形式が間違っています"); 34 f--; 35 } 36 }return kaitou; 37 38 39} 40 41
java
1//考えてみた処理方法 2for(int t=0;t<kaitou.length;t++){ 3 for (int z=t+1;z<kaitou.length; z++ ) { 4 if(kaitou[t]==kaitou[z]){ 5 System.out.println("同じ数字は入力できません"); 6 f--; 7 } 8 } 9 }
試したこと
上記の二重ループをtry内のint ccの次の行から入れていましたがうまくいきません
理解が乏しいのは承知の上、ご鞭撻いただけると幸いです
またループ以外のやり方もあれば参考になります。
補足情報(FW/ツールのバージョンなど)
プログラミング勉強始めて1ヶ月くらいなので自力で考えれるのがこの程度になってしまいますが、よろしくお願い致します。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/03/21 04:20