鸿蒙做计算器加减乘除优先级的代码怎么写
时间: 2024-10-09 07:16:17 浏览: 41
鸿蒙操作系统(HarmonyOS)本身是一个操作系统框架,它的API并不直接支持编写计算器应用的优先级运算规则。但是,你可以使用HarmonyOS提供的组件和SDK,例如Elophos UI库,来构建一个简单的数学计算应用。
以下是一个简化的示例,展示了如何使用HarmonyOS的UI框架来实现基本的四则运算,包括设置优先级规则:
```java
import ohos.app.AppManager;
import ohos.halo.widget.HaloButton;
import ohos.halo.widget.HaloEditText;
import ohos.halo.widget.HaloTextView;
public class CalculatorActivity extends AppCompatActivity {
private HaloEditText inputNum1, inputNum2;
private HaloButton operatorAdd, operatorSubtract, operatorMultiply, operatorDivide;
private HaloTextView resultView;
// 初始化操作符按钮的点击事件处理器
private void setupOperatorButtons() {
operatorAdd.setOnClickListener(e -> performOperation("+"));
operatorSubtract.setOnClickListener(e -"));
operatorMultiply.setOnClickListener(e -> performOperation("*"));
operatorDivide.setOnClickListener(e -> performOperation("/"));
}
// 执行计算并更新结果显示
private void performOperation(String op) {
String num1 = inputNum1.getText().toString();
String num2 = inputNum2.getText().toString();
try {
double num1Value = Double.parseDouble(num1);
double num2Value = Double.parseDouble(num2);
switch (op) {
case "+":
resultView.setText(num1Value + num2Value);
break;
case "-":
resultView.setText(num1Value - num2Value);
break;
case "*":
resultView.setText(num1Value * num2Value);
break;
case "/":
if (num2Value != 0)
resultView.setText(num1Value / num2Value);
else
resultView.setText("Error! Division by zero.");
break;
}
} catch (NumberFormatException e) {
resultView.setText("Invalid input, please enter numbers only.");
}
}
// ...其他初始化和生命周期管理代码...
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_calculator);
inputNum1 = findViewById(R.id.input_num1);
inputNum2 = findViewById(RID.input_num2);
operatorAdd = findViewById(R.id.operator_add);
operatorSubtract = findViewById(R.id.operator_subtract);
operatorMultiply = findViewById(R.id.operator_multiply);
operatorDivide = findViewById(R.id.operator_divide);
resultView = findViewById(R.id.result);
// 设置输入框和操作符的监听,以及初始显示零
inputNum1.setText("0");
inputNum2.setText("0");
resultView.setText("0");
// 初始化操作符按钮
setupOperatorButtons();
}
// ...其他逻辑处理...
}
```
这个例子只是一个基础版的计算器,实际的优先级会涉及到用户界面设计、栈或表达式解析算法等更复杂的部分。如果你需要实现真正的科学计算器,那可能还需要处理括号和运算符的优先级。
阅读全文