Calculator项目,其中有2个用于输入数字的文本框,一个下拉列表,用于数学运算符的“ OperatorList”和一个“计算”按钮。
目标:当用户在文本框中输入值并选择数学运算符时,它将在“结果”标签中显示结果。如果用户尝试除以零,则结果标签中将显示一条消息“您不能除以零,否则请执行“ /”操作。
当“ /”在OperatorList中并且在value2文本框中为0时,消息确实显示在“结果标签”上,指出“您不能被零除”。但是,如果我更改第二个数字,则消息“您不能被零除”仍然存在,并且不会执行数学运算符“ /”。我的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();
}
答案 0 :(得分:3)
在进行除法之前,您需要测试零除法。您之后要进行测试
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;
}
答案 1 :(得分:2)
尝试更新这段代码,我移动了return语句。这将迫使您的除法操作无法到达代码底部的显示部分。
if (OperatorList.SelectedValue == "/")
{
if (value2 == 0)
{
ResultLabel.Text = "You cannot divide by zero";
return;
}
result = value1 / value2;
}
ResultLabel.Text = result.ToString();