我正在制作一个计算器桂.有没有办法让这个代码看起来更干净,没有重复行.
double num1, num2, ans, doub;
num1 = Double.parseDouble(FirstInput.getText());
num2 = Double.parseDouble(SecondInput.getText());
oper = (Operator.getText());
if(oper.equals("+")){
ans = num1 + num2;
doub = Math.round(ans * 100000.0) / 100000.0;
if(doub == (int) ans){
Answer.setText(Integer.toString((int) ans));
} else{
Answer.setText(Double.toString(doub));
}
}
if(oper.equals("-")){
ans = num1 - num2;
doub = Math.round(ans * 100000.0) / 100000.0;
if(doub == (int) ans){
Answer.setText(Integer.toString((int) ans));
} else{
Answer.setText(Double.toString(doub));
}
}
if(oper.equals("/")){
ans = num1 / num2;
doub = Math.round(ans * 100000.0) / 100000.0;
if(doub == (int) ans){
Answer.setText(Integer.toString((int) ans));
} else{
Answer.setText(Double.toString(doub));
}
}
if(oper.equals("x")){
ans = num1 * num2;
doub = Math.round(ans * 100000.0) / 100000.0;
if(doub == (int) ans){
Answer.setText(Integer.toString((int) ans));
} else{
Answer.setText(Double.toString(doub));
}
}
Run Code Online (Sandbox Code Playgroud)
使用java-8,你可以通过引入一个接受数字的新方法来使它非常有趣,并且DoubleBinaryOperator:
public void setAnswerText(double num1, double num2, DoubleBinaryOperator operator){
final double ans = operator.applyAsDouble(num1, num2);
final double doub = Math.round(ans * 100000.0) / 100000.0;
if(doub == (int) ans){
Answer.setText(Integer.toString((int) ans));
} else{
Answer.setText(Double.toString(doub));
}
}
Run Code Online (Sandbox Code Playgroud)
并使用switch语句:
final double num1 = Double.parseDouble(FirstInput.getText());
final double num2 = Double.parseDouble(SecondInput.getText());
final String oper = (Operator.getText());
final DoubleBinaryOperator operator;
switch(oper){
case "+":
operator = (a, b) -> a+b;
break;
case "-":
operator = (a, b) -> a-b;
break;
case "/":
operator = (a, b) -> a/b;
break;
case "x":
operator = (a, b) -> a*b;
break;
default:
throw new UnsupportedOperationException();
}
setAnswerText(num1, num2, operator);
Run Code Online (Sandbox Code Playgroud)
这样,您就可以在switch-statment中找到匹配的运算符,然后使用数字和找到的运算符执行该方法
| 归档时间: |
|
| 查看次数: |
100 次 |
| 最近记录: |