黑马程序员技术交流社区

标题: 哪里错了。。该怎么写。。请指教。 [打印本页]

作者: yekong262    时间: 2014-1-20 21:24
标题: 哪里错了。。该怎么写。。请指教。
本帖最后由 yekong262 于 2014-1-21 21:00 编辑
  1.         public static int compare(int a,int b,int c)
  2.         {        
  3.                         
  4.                 if (a>=b)
  5.                         int max = a;
  6.                 else
  7.                         int max=b;
  8.                 if (max>=c)
  9.                         int max=max;
  10.                 else        
  11.                         int max=c;
  12.                 return max;
  13. }
复制代码

作者: 黄晓鑫    时间: 2014-1-20 21:28
没有return语句
作者: 黄晓鑫    时间: 2014-1-20 21:30
return语句在语句中虽然有效 但毕竟得有一个结果 要是读完语句而且语句都没有成立 就没有了return语句 所以必须要有默认的return语句

作者: yekong262    时间: 2014-1-20 21:44
黄晓鑫 发表于 2014-1-20 21:30
return语句在语句中虽然有效 但毕竟得有一个结果 要是读完语句而且语句都没有成立 就没有了return语句 所以 ...

能否给说下 怎么写呢??、

作者: 黄晓鑫    时间: 2014-1-20 21:51
      public static int compare(int a,int b,int c)
        {        
                        
                if (a>=b)
                        int max = a;
                else
                        int max=b;
                if (max>=c)
                        int max=max;
                else        
                        int max=c;
                return max;
return 0;
}
作者: 孤独的天奇    时间: 2014-1-20 22:04
很明显,你的变量都是定义在判断语句中,有效范围也是判断语句,你return max会报错,max找不到,应该这么写
                int max = 0;
                if (a>=b)
                        max = a;
                else
                        max=b;
                if (max>=c)
                        max=max;
                else        
                        max=c;
                return max;
作者: yekong262    时间: 2014-1-20 22:21
本帖最后由 yekong262 于 2014-1-20 22:26 编辑
黄晓鑫 发表于 2014-1-20 21:51
public static int compare(int a,int b,int c)
        {        
                        

int max = a;  -------FunctionRecover.java:47: 错误: 需要 '.class'  我知道哪里错了
作者: 曹冬明    时间: 2014-1-20 22:32
我怎么感觉是作用域的问题呢,在if中定义的变量,在最有return的时候可以用来返回么,他找的到么,我感觉应该先在全局定义一下max,然后用if来调用就没问题了吧
作者: 猎鹰tianya    时间: 2014-1-20 22:55
哎,该怎么说呢,lz不妨试试这么改下:
  1. public static int compare(int a, int b, int c) {
  2.                 int max = 0;

  3.                 if (a >= b)
  4.                         max = a;
  5.                 else
  6.                         max = b;

  7.                 if (max < c)
  8.                         max = c;
  9.                
  10.                 return max;
  11.         }
复制代码




作者: 猎鹰tianya    时间: 2014-1-20 22:57
黄晓鑫 发表于 2014-1-20 21:51
public static int compare(int a,int b,int c)
        {        
                        

感觉你在误人子弟呀呀呀呀!;P
作者: yekong262    时间: 2014-1-21 19:43
猎鹰tianya 发表于 2014-1-20 22:55
哎,该怎么说呢,lz不妨试试这么改下:

谢谢。  




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2