-1

みなさん、こんにちは。私はJavaの初心者なので、そのクォークについてはよくわかりませんが、これはC#で機能します。このコードで同じ結果を得るのに問題があります:

   for (int i = 0; i < 50; i++){

        ar1 = array[i][0];
        ar2 = array[i][1];
        ar3 = array[i][2];
        ar4 = array[i][3];
        ar5 = array[i][4];
        ar6 = array[i][5];

        if (ar1 == rs1 || ar1 == rs2 || ar1 == rs3 || ar1 == rs4 || ar1 == rs5 || ar1 == rs6)
            M++;

        if (ar2 == rs1 || ar2 == rs2 || ar2 == rs3 || ar2 == rs4 || ar2 == rs5 || ar2 == rs6)
            M++;

        if (ar3 == rs1 || ar3 == rs2 || ar3 == rs3 || ar3 == rs4 || ar3 == rs5 || ar3 == rs6)
            M++;

        if (ar4 == rs1 || ar4 == rs2 || ar4 == rs3 || ar4 == rs4 || ar4 == rs5 || ar4 == rs6)
            M++;

        if (ar5 == rs1 || ar5 == rs2 || ar5 == rs3 || ar5 == rs4 || ar5 == rs5 || ar5 == rs6)
            M++;

        if (ar6 == rs1 || ar6 == rs2 || ar6 == rs3 || ar6 == rs4 || ar6 == rs5 || ar6 == rs6)
            M++;


        if (M == 3)
            w3++;

        if (M == 4)
            w4++;

        if (M == 5)
            w5++;               

        if (M == 6)
            w6++;

    }
    lbl3.setText(String.valueOf(w3));
    lbl4.setText(String.valueOf(w4));
    lbl5.setText(String.valueOf(w5));
    lbl6.setText(String.valueOf(w6));

forループでは:

  1. ar(N)を配列の一部に設定します

  2. rs(N)をチェックし、trueの場合はMを増やします

  3. Mをチェックして、その3,4,5,6がtrueの場合にw(N)を増加させるかどうかを確認します

  4. 最後に、w(N)のすべての合計をラベルに表示します(例:lbl3、10 lbl4、22 lbl5、12 lbl6、6)

しかし、私が得るのは、合計1を与える1つのラベル、または1を与えるすべてです!! {}で囲み、(else if)を使用してみましたが、配列がいっぱいなので、困惑しています!!!

4

2 に答える 2

2

オブジェクトがプリミティブ型でない限り、==の代わりに.equalsを使用してください

また、タイプが文字列であると仮定すると、rsをSetに入れてから、containsを実行します。

Set<String> ares = new HashSet<String>();
ares.add(r1);
...
ares.add(rN);

for (int i = 0; i < 50; i++) {
    for (int j = 0; j <= 5; j++) {
       if (ares.contains(array[i][j])
           M++;
    }
}
于 2013-02-14T00:26:21.210 に答える
0

そもそもそれほど多くの変数を割り当てる必要はありません。物事を単純化すると、デバッグが容易になる可能性があります。

for (int i = 0; i < 50; i++){
    for (int j = 0; j < 6; j++){
        value = array[i][j];
        if(value == rs1 through 6){//check to see if value equals all of the rs1, rs2, etc... variables   
            M++;    
        }
    }
 # assign W variables...
}

それでも期待する変数が得られない場合は、ループ内に断続的な印刷ステートメントを配置して、値がループのさまざまな反復にあることを確認できます。ただし、実行中に変数を期待できるように、ブレークポイントを設定するデバッグプログラムを使用することをお勧めします。お役に立てれば。

于 2013-02-14T00:40:17.700 に答える