public static int max(int x, int y)
        {
            if (x > y)
            { return x; }
            else if (x < y)
            { return y; }
            else if (x == y)
            { return 0; }
        }
“ConsoleApplication1.MTool.max(int, int)”: 并非所有的代码路径都返回值
我又哪里错了

解决方案 »

  1.   

    public static int max(int x, int y)
            {
                if (x > y)
                { return x; }
                else 
                {
                  if (x < y)
                    { return y; }
                  else 
                    { return 0; }
                }
            }
      

  2.   

    public static int max(int x, int y)
            {
                if (x > y)
                {
                   return x; 
                 }
                 else
                {
                if (x < y)
                    return y; 
                 else
                     return 0; 
                 }    
                        
            }
      

  3.   

    虽然你的程序从实际来看肯定会有返回值,但是编译器在检查代码的时候并不会去考虑这种情况,因此在出现if条件时一定要有else进行值的返回!
    而且你这样写代码也缺乏可读性!
      

  4.   

    俺好像懂了一点,是不是编译器只看见if中返回直,但是对于编译器来说,没有else,那就代除了if中有返回直,那么其他的情况就没有else就没有返回直了。是不是这样子的。
      

  5.   

    ???????????楼上们在说什么???????????? 这样的写法是根本编译不过的!!//*********************
    虽然你的程序从实际来看肯定会有返回值,但是编译器在检查代码的时候并不会去考虑这种情况,因此在出现if条件时一定要有else进行值的返回!
    而且你这样写代码也缺乏可读性!
    //*********************你自己不明白还要误导别人么?谁说出现if一定要有else???直接在最后加一个返回也是可以的阿
    public static int max(int x, int y)
            {
                if (x > y)
                { return x; }
                else if (x < y)
                { return y; }
                else if (x == y)
                { return 0; }            return -1;
            }只不过这样是不符合实际逻辑可以改写为
    public static int max(int x, int y)
    {
    return x == y ? 0 : x > y ? x : y;
    }
      

  6.   

    public static int max(int x, int y)
            {
     int temp = 0;
                if (x > y)
                {
                   temp = x;
                }
                if (x < y)
                { 
                   temp = y; 
                 }
                return temp;
            }
      

  7.   

    happycharles() 的代码简单,return x == y ? 0 : x > y ? x : y;理解起来慢一点。
      

  8.   

    在我们的C#大家庭里,请注意 谦虚和礼貌.....谢谢!软件(源码)详情 http://future-tech.czm.cn
    ###############################################
    提供C#源码、控件、解决方案以及各种系统维护服务。
    并承接软件开发、毕业设计等客制化软件专案及定单。
    ###############################################
      

  9.   

    public static int max(int x, int y)方法名是 max(),应该是求 x, y 中较大的一个。 在 x 等于 y 时返回 0 ,合理吗?应该返回 x 或 y。直接用 System.Math.Max() 就好了。
      

  10.   

    如果要自己实现,这样写就好了:public static int max(int x, int y)
    {
      return x > y ? x : y;
    }