Javaに関する様々な情報をご紹介します。

Javaに関する様々な情報をご紹介します。
評価

0

for文内がうまくいきません。

CheckクラスBox内のfor文がうまくいきません。
出力から(i,j)=(0,2)と(s,t)=(1,0)の値が同じなのに0が代入されないなど....。
手助けお願いします。

class Ran{
    static int[][] ran2 = {{1,5,2,7,0,1,0,5,0},   //1
                           {2,1,7,0,4,0,9,0,0},   //2
                           {3,4,1,0,0,0,0,7,4},   //3
                           {8,0,0,1,0,4,0,0,6},   //4
                           {0,0,6,0,0,0,1,0,0},   //5
                           {7,0,0,9,0,3,0,0,8},   //6
                           {2,4,0,0,0,0,0,1,5},   //7
                           {0,0,7,0,5,0,3,0,0},   //8
                           {0,5,0,8,0,7,0,4,0},}; //9;
       
 static int[][] make(){
        // 縦横Box内の重複確認
        Check.Box();

        return ran2;
    }
}
-------------------------------------------------------------
class Check{
  static int[][] Box(){
      int i,j,s,t;    
            for(i = 0; i<3; i++){
                for(j = 0; j<3; j++){
                    for(s = 0; s<3; s++){
                        for(t = 0; t<3; t++){
                            if(i == s && j == t){                            
                                continue; 
                            }
                            if(Ran.ran2[i][j] == Ran.ran2[s][t]){
                                Ran.ran2[t][s] = 0;
                            }
                             System.out.println(Ran.ran2[i][j]+"="+Ran.ran2[s][t] );
                        }
                    }
                }
            }
            return Ran.ran2;
  }
--出力--------------------------------------------------------------
1=5
1=2
1=0
1=7
1=4
1=0
5=2
5=0
5=7
5=4
5=0
2=5
2=0
2=7
2=4
2=0
2=5
2=2
2=0
2=7
2=4
2=0
0=5
0=2
0=7
0=4
0=0
7=5
7=2
7=0
7=4
7=0
0=5
0=2
0=0
0=7
0=4
0=0
4=5
4=2
4=0
4=7
4=0
0=5
0=2
0=0
0=7
0=4

2

回答

2899

閲覧

2件の回答

評価

0

解決しました!!単純なミスでした

評価

30

単純なミスをいかに減らすかというのも、プログラミングの大事な要素だ。
ミスを無くすことはできないが、例えば変数を分かりやすい名前にしたり、
メソッド分割や重複の排除等々で個々の処理の見通しを良くしたりして、
減らすことはできる。
少しずつ意識して行ってみよう。

質問から6ヶ月以上経過しているので、回答を書き込むことはできません。