java中if语句的问题

时间:2013-02-14 00:20:52

标签: java arrays if-statement

大家好,我是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)然后增加M,如果为真

  3. 检查M以查看其3,4,5,6是否会增加w(N)如果为真

  4. 最后
  5. 向标签显示所有w(N)的总数 例如lbl3,10     lbl4,22     lbl5,12     lbl6,6

  6. 但我得到的只是一个标签,总共1或全部给1! 试过封闭在{}并使用(否则如果), 阵列已满,所以我很难过!!!

2 个答案:

答案 0 :(得分:2)

除非对象是基本类型,否则请使用.equals而不是==

另外,假设您的类型是字符串,我将rs放入Set中,然后执行包含。

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++;
    }
}

答案 1 :(得分: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...
}

如果仍然没有得到预期的变量,可以在循环内部放置间歇性的print语句,以查看值是否在循环的不同迭代中。但是,我建议您使用设置断点的调试程序,以便在执行期间可以预期变量。希望这可以帮助。