阵列等式检查方法

时间:2013-01-08 10:51:16

标签: arrays loops if-statement for-loop return

我有一种方法来检查两个数组是否相等。

private bool CheckArray(int[] ilk_dizi, int[] son_dizi)
{
    for (int i = 0; i < 5; i++)
    {
        if (ilk_dizi[i]==son_dizi[i])
        {
            if (i==4)
            {
                return true;
            }
            else
            {
                continue;
            }
        }
        else
        {
            return false;
        }
    }
}

但我有一个“并非所有代码重写值”错误。任何想法?

2 个答案:

答案 0 :(得分:1)

你有可能“不归路” 在使用continue时要小心,很多时候它并不是必需的。

尝试按如下方式优化代码

private bool CheckArray(int[] ilk_dizi, int[] son_dizi)
{
   for (int i = 0; i < 5; i++)
   {
       if (ilk_dizi[i]!=son_dizi[i])
       {
           return false;
       }
   }

   return true;
}

答案 1 :(得分:0)

continue块中有一个else - 静态分析器无法推断传入的数组长度为5,最终会到达i=4

想象一下,你传递了两个相等的数组,每个数组大小为2 - 然后你会两次点击continue并退出for循环 - 那么将返回什么?因此警告。

return true;放在方法正文的末尾,或修改算法。

相关问题