首页 > 解决方案 > 更改第二个文本框时保留除以零消息

问题描述

计算器项目,有 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();
}

标签: c#

解决方案


在进行除法之前,您需要测试零除法。之后你在做测试

           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;
            }

推荐阅读