-3

可能重复:
语法问题 IF ELSE (Java)

我正在尝试制作一个计算器,如果在编辑框中没有输入任何值,它会显示一条消息。但它是FC的!很长一段时间后我正在制作应用程序,所以我很困惑。

private OnClickListener startListener = new OnClickListener() {
    public void onClick(View v) {               
        double a=0;
        double b=0;
        double c=0;
        EditText edit;
        EditText edit2;
        TextView edit3;
        String lname="";
        edit=(EditText)findViewById(R.id.edit);
        edit2=(EditText)findViewById(R.id.edit2);
        edit3=(TextView)findViewById(R.id.edit3); // everything defined above


        String editstr= edit.getText().toString(); // real work starts
        if(editstr.contentEquals(lname))
            edit3.setText("Enter value");
        else

        a=Double.parseDouble(edit.getText().toString()); // else add the stuff
        b=Double.parseDouble(edit2.getText().toString());
        c=a+b;
        edit3.setText(Double.toString(c));

    } };
4

3 回答 3

5

在你的 if-else 周围加上括号,目前在 else 的情况下它只执行第一行,无论你的 if 通过还是失败,都会执行其他行。

if(editstr.contentEquals(lname)) {
    edit3.setText("Enter value");
} else {
    a=Double.parseDouble(edit.getText().toString()); // else add the stuff
    b=Double.parseDouble(edit2.getText().toString());
    c=a+b;
    edit3.setText(Double.toString(c));
}
于 2013-01-31T16:27:48.323 回答
0

如所写,只有 thea=Double.parseDouble(edit.getText().toString());受 else 影响。如果你想要它的其余部分,请将块包围在{}

于 2013-01-31T16:27:26.403 回答
0

它确实有效,只是永远不会触发。

你应该做

 if(editStr.isEmpty())
     editStr = "Enter value";
 else
 {
    //editStr.equals("someValue"); //test against some value
    //rest
 }
于 2013-01-31T16:28:52.047 回答