两个if语句,只有一个有效

时间:2014-08-12 08:35:07

标签: java android

我的代码中有两个if语句,但当两者都是true时,它只会生成第二个if。我该怎么写呢?

String s1 = editTextl.getText().toString();
double d = 0;

if (s1.contains("H")) {
    d = + H;     //H is double with value of 1
}
if (s1.contains("O")) {
    d = + O;     //O is double with value of 16   
}

TextView.setText(" " + getString(R.string.vysledek) + " " + d);

当我在EditText中输入HO时,TextView应返回值17,但它只返回16.为什么?

5 个答案:

答案 0 :(得分:8)

您需要按如下方式编写,将= +替换为+=

if (s1.contains("H")) {
    d += H;
}

if (s1.contains("O")) {
   d += O;
}

+= 是所谓的复合赋值运算符。它将右操作数添加到左操作数。

反之, =+ ,只是将右操作数分配给左操作数,相当于使用 = 的简单赋值。一元 + 运算符将被忽略。

答案 1 :(得分:4)

= +替换为+=

=是一个赋值运算符,+是一个基本无效的一元加运算符。所以你要为变量分配一个新值。

+=是“添加到左侧的当前值”。

答案 2 :(得分:1)

    double d = 0;

    if (s1.contains("H")) {

        d += 1; // H is double with value of 1

    }

    if (s1.contains("O")) {

        d += 16; // O is double with value of 16

    }

答案 3 :(得分:0)

= +分配更改为+=分配 - d = + H实际上只是由编译器解释为d = +H。您实际上并未将H添加到d,而是仅设置d = H

答案 4 :(得分:0)

d = + H替换为d += H,将d = + O替换为d += O