2

我一直在开发一个 Android 应用程序,它用复数计算各种动作。我有几个错误,但 stackoverflow 社区非常有帮助,我确实意识到我的风格需要改进(命名)。然而,问题是程序出现计算错误,我对所有代码进行了三次检查,但由于某种原因它不能正确计算(即 2+2 不是 4),并且 logcat 没有显示错误。我也尝试将输出答案的部分移动到各个地方,但它仍然会出错。这是我的代码:

    package complex.OliverV;

    import android.app.Activity;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.Button;
    import android.widget.TextView;
    import android.widget.RadioButton;
    import android.widget.EditText;
    public class ComplexNumbersActivity extends Activity {
        /** Called when the activity is first created. */
Button Check;
RadioButton plus, minus, multiply, div;
EditText X1,X2,Y1,Y2;
TextView Ans;
int sign;
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    Check = (Button) findViewById(R.id.Check);
    plus = (RadioButton) findViewById(R.id.plus);
    minus = (RadioButton) findViewById(R.id.minus);
    multiply = (RadioButton) findViewById(R.id.multiply);
    div = (RadioButton) findViewById(R.id.div);
    Ans = (TextView) findViewById(R.id.Ans);
    X1=(EditText) findViewById(R.id.X1);
    X2=(EditText) findViewById(R.id.X2);
    Y1=(EditText) findViewById(R.id.Y1);
    Y2=(EditText) findViewById(R.id.Y2);
    plus.setOnClickListener(new View.OnClickListener(){

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            sign=1;
        }


    });
    minus.setOnClickListener(new View.OnClickListener(){

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            sign=2;
        }


    });
    multiply.setOnClickListener(new View.OnClickListener(){

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            sign=3;
        }


    });
    div.setOnClickListener(new View.OnClickListener(){

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            sign=4;
        }


    });
    Check.setOnClickListener(new View.OnClickListener(){

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            String xs=X1.getText().toString();
            String xss=X2.getText().toString();
            String ys=Y1.getText().toString();
            String yss=Y2.getText().toString();
            double x3, y3;
            if(!xs.equals("") && !xss.equals("") && !ys.equals("") && !yss.equals("")&& xs != null && xss != null && ys != null && yss != null)
            {
            double x1=Double.parseDouble(xs);
            double x2=Double.parseDouble(xss);
            double y1=Double.parseDouble(ys);
            double y2=Double.parseDouble(yss);
            switch(sign)
            {
            case(1):
            {
                x3=(x1+x2);
                y3=(y1+y2);
                Ans.setText("x = "+x3+"y = "+y3);
            }
            case(2):
            {
                x3=(x1-x2);
                y3=(y1-y2);
                Ans.setText("x = "+x3+"y = "+y3);
            }
            case(3):
            {
                x3=((x1*x2) - (y1*y2));
                y3=((x2*y1) + (x1*y2));
                Ans.setText("x = "+x3+"y = "+y3);
            }
            case(4):
            {
                if(x2!=0 && y2!=0)
                {
                x3 = ((x1 * x2) + (y1 * y2)) / ((x2 * x2) + (y2 * y2));
                y3 = ((x2 * y1) - (x1 * y2)) / ((x2 * x2) + (y2 * y2));
                Ans.setText("x = "+x3+"y = "+y3);
                }
                else
                {
                    Ans.setText("Enter valid numbers!");
                }
            }

        }
        }
            else
            {
                Ans.setText("Enter valid numbers!");
            }
        }
    });
}       
}
4

1 回答 1

2

break;switch. 将它们添加到每个case. 每个也是{}不必要的case

于 2013-02-28T20:12:00.373 回答