android studio 连续加减乘除无优先级计算器代码
时间: 2023-09-09 18:14:01 浏览: 40
以下是一个简单的 Android Studio 连续加减乘除无优先级计算器的代码实现:
```java
public class MainActivity extends AppCompatActivity {
private TextView resultTextView;
private String currentNumber = "";
private String currentOperator = "";
private double result = 0.0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
resultTextView = findViewById(R.id.result_text_view);
}
public void onNumberClick(View view) {
Button button = (Button) view;
currentNumber += button.getText().toString();
resultTextView.setText(currentNumber);
}
public void onOperatorClick(View view) {
if (!currentNumber.isEmpty()) {
if (currentOperator.isEmpty()) {
result = Double.parseDouble(currentNumber);
} else {
double number = Double.parseDouble(currentNumber);
switch (currentOperator) {
case "+":
result += number;
break;
case "-":
result -= number;
break;
case "*":
result *= number;
break;
case "/":
result /= number;
break;
}
}
currentNumber = "";
currentOperator = ((Button) view).getText().toString();
}
}
public void onEqualClick(View view) {
if (!currentNumber.isEmpty() && !currentOperator.isEmpty()) {
double number = Double.parseDouble(currentNumber);
switch (currentOperator) {
case "+":
result += number;
break;
case "-":
result -= number;
break;
case "*":
result *= number;
break;
case "/":
result /= number;
break;
}
currentNumber = "";
currentOperator = "";
resultTextView.setText(String.valueOf(result));
result = 0.0;
}
}
public void onClearClick(View view) {
currentNumber = "";
currentOperator = "";
result = 0.0;
resultTextView.setText("");
}
}
```
在这个实现中,我们使用了一个字符串类型的 `currentNumber` 来保存当前输入的数字,使用一个字符串类型的 `currentOperator` 来保存当前的操作符,使用一个双精度浮点数类型的 `result` 来保存当前的计算结果。
当用户点击数字键时,我们将数字添加到 `currentNumber` 中,并将其显示在 `resultTextView` 上。
当用户点击操作符键时,我们首先检查 `currentNumber` 是否为空。如果不为空,我们将 `currentNumber` 转换为双精度浮点数类型,并根据当前的操作符对 `result` 进行相应的计算。然后,我们将 `currentNumber` 和 `currentOperator` 重置为初始值,并将当前的操作符保存到 `currentOperator` 中。
当用户点击等号键时,我们首先检查 `currentNumber` 和 `currentOperator` 是否都不为空。如果都不为空,我们将 `currentNumber` 转换为双精度浮点数类型,并根据当前的操作符对 `result` 进行相应的计算。然后,我们将 `currentNumber` 和 `currentOperator` 重置为初始值,并将 `result` 显示在 `resultTextView` 上,并将 `result` 重置为初始值。
当用户点击清除键时,我们将 `currentNumber`、`currentOperator` 和 `result` 都重置为初始值,并将 `resultTextView` 的文本设置为空。