c# - 更改第二个文本框时保留除以零消息
问题描述
计算器项目,有 2 个用于输入数字的文本框、一个用于数学运算符的下拉列表“OperatorList”和一个“计算”按钮。
目标:当用户在文本框中输入值并选择数学运算符时,它会在“结果”标签中显示结果。如果用户尝试除以零,结果标签中会显示一条消息“您不能除以零,否则执行“/”操作。
当“/”在 OperatorList 中并且 0 在 value2 文本框中时,消息确实显示在“结果标签”上,说明“您不能除以零”。但是,如果我更改第二个数字,则消息“您不能除以零”仍然存在,并且不会执行数学“/”。我的 C# 代码在下面,但不会显示该消息。我是 C# 的新手,所以我知道我缺少或忽略了一些简单的东西,请帮忙。
if (ValueBox1.Text.Length > 0 && ValueBox2.Text.Length > 0)
{
switch (OperatorList.SelectedValue)
{
case "+":
result = value1 + value2;
break;
case "-":
result = value1 - value2;
break;
case "*":
result = value1 * value2;
break;
}
if (OperatorList.SelectedValue == "/")
{
if (value2 == 0)
{
ResultLabel.Text = "You cannot divide by zero";
}
result = value1 / value2;
return;
}
ResultLabel.Text = result.ToString();
}
解决方案
在进行除法之前,您需要测试零除法。之后你在做测试
switch (OperatorList.SelectedValue)
{
case "+":
result = value1 + value2;
break;
case "-":
result = value1 - value2;
break;
case "*":
result = value1 * value2;
break;
case "/":
if (value2 == 0)
{
ResultLabel.Text = "You cannot divide by zero";
return;
}
result = value1 / value2;
break;
}
推荐阅读
- swift - 将 Realm Optional 中的数据加载到 Swift 中的文本字段/字符串中
- node.js - Visual Studio Code - Node.js 调试器“断点已设置但尚未绑定”
- android - Livedata导致recyclerview更新导致edittext焦点丢失
- kubernetes - Kubernetes 暴露不适用于文件
- c# - 与具有额外数据的实施者的公共接口?
- keras - 有状态与无状态 LSTM
- tableau-api - Tableau 计算字段,具有特定条件
- python - 熊猫正则表达式提取物为 re.search 提供不同的输出?
- html - A transparent image I'm linking to isn't transparent when being displayed
- java - 序言中不允许使用 Android Studio 项目内容