首页 新闻 会员 周边 捐助

方法返回值问题

0
[已解决问题] 解决于 2012-07-08 19:02
private static int Max(int[] arr)
        {
            for (int i = 0; i < arr.Length-1; i++)
            {
                if (arr[i]>arr[i+1])
                {
                    return arr[i];
                }
                else
                {
                    return arr[i + 1];
                }
            }
           // throw new Exception() ;
        }
方法会提示并非所有路径都有返回值,但是又不知道for循环外该如何返回值,请高手指点......
轻狂の书生的主页 轻狂の书生 | 小虾三级 | 园豆:1042
提问于:2012-07-07 11:51
< >
分享
最佳答案
0

-------------------------------------

从长码中可以看出你要返回就是一个 INT, 先不管你的程序做什么的逻辑怎样 。我个人认为改动的话可以这样改:

private static int? Max(int[] arr)
        {

    int? temp=null;
           
for (int i = 0; i < arr.Length-1; i++)
            {
               
if (arr[i]>arr[i+1])
                {
                   temp=
arr[i];

        break;
                }
               
else
                {
                    temp=
arr[i + 1];

        break;
                }
            }
          

return temp;

        }

 

用到这个函数时 只要看一下返回结果是不是为NULL 就行了。

奖励园豆:5
kingNull | 菜鸟二级 |园豆:209 | 2012-07-08 10:04
其他回答(4)
0

如果数组的长度为0的时候,for语句里面根本不能执行,所以就没有返回值

pstune | 园豆:239 (菜鸟二级) | 2012-07-07 12:53

那怎么修改?

支持(0) 反对(0) 轻狂の书生 | 园豆:1042 (小虾三级) | 2012-07-07 13:16
0
这个函数的问题不在返回值不返回值,逻辑有问题。
NoImagination | 园豆:209 (菜鸟二级) | 2012-07-07 15:39
0

直接在最后面反回一个0不行么.?就是说如果数组没有元素的时候.就反回0

只会造轮子 | 园豆:2274 (老鸟四级) | 2012-07-07 17:58
0
private static int Max(int[] arr)
        {
            for (int i = 0; i < arr.Length-1; i++)
            {
                if (arr[i]>arr[i+1])
                {
                    return arr[i];
                }
                else
                {
                    return arr[i + 1];
                }
            }
           return -1;
        }
不懂cc | 园豆:877 (小虾三级) | 2012-07-08 16:34
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册