c# - 除以零警告

标签 c# divide-by-zero

我在程序中遇到除以零异常的问题。我尝试了几种技巧,但都没有奏效。我应该在我的代码中更改什么以避免被零除?

我知道我必须在代码的“IF”部分添加一些额外的语句,但我仍然不知道我到底应该做什么。

for (counter = 0; counter < numbers.Length; counter++)
{
    string input = Console.ReadLine();

    if(string.IsNullOrEmpty(input))
    {
        break;
    }
    else
    {
        int.TryParse (input, out numbers[counter]);
    }
}

for (int i = 0; i < numbers.Length; i++) {
    sum += numbers [i];

    if (numbers [i] % 3 == 0 && numbers [i] % 9 != 0) {
        div3not9++;
    }

    if (numbers [i] >= 11 && numbers [i] <= 131 && (numbers [i] * numbers [i] % 7 == 0) && (numbers [i] * numbers [i] % 3 != 0)) {
        range11to131sqdiv7not3++;
        SUMrange11to131sqdiv7not3 += numbers [i];

        if (range11to131sqdiv7not3 > 0) {
            mean = SUMrange11to131sqdiv7not3 / range11to131sqdiv7not3;
        }
            else
                mean = 0;
        }

    }

for (int y = 0; y < numbers.Length; y++) {
    if (numbers [y] > 0)
        min = numbers [y];
}
for (int r = 0; r < numbers.Length; r++) {
    if (numbers [r] < min && numbers [r] > 0)
        min = numbers [r];

    if (numbers [r] % min == 0) {
        divmin++; // DIVISION BY ZERO EXCEPTION
    }

    if (sum % numbers [r] == 0) {
        divisorsofsum++;  // DIVISION BY ZERO EXCEPTION
    }
}

最佳答案

除以零是由于您使用了 % 运算符。这operator returns the remainder of a division如果第二个操作数为零,则将失败。

如果

numbers[r] % min

导致除法错误为零,则 min 为零。你需要特别对待这种情况。 % 运算符的其他用法也类似。

关于c# - 除以零警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18570003/

相关文章:

c# - 获得焦点时突出显示 WPF 控件

c# - 使用 C# 删除分隔符

java - 帮助使用 while 循环和 if 语句

C# 处理 : when dispose and who dispose it

c# - 与模型状态错误消息相对的成功消息

c++ - 在 C++ 中检查零或非规范化数字

java - ArithmeticException 除以零...如何修复此方法?

c# - 闯入 C# 调试器以除以零

c# - 让我的游戏重新开始 C#

PHP,如何捕捉除以零?