黑马程序员技术交流社区

标题: 接口的第三个方法出现错误 注释的部分编译错误 提示是..... [打印本页]

作者: 黑马灬小寒    时间: 2014-3-28 11:30
标题: 接口的第三个方法出现错误 注释的部分编译错误 提示是.....
interface FiveAndOne
{
        long factorial(int m);                                //求参数的阶乘
        long myPower(int m,int n);                        //求参数m的n次方
        //boolean findFactorSum(int m,int n);        //判断参数中较小数是否是较大数的因子
}       
        //让Usb类实现FiveAndOne接口
public class Usb implements FiveAndOne
{
        //实现factorical方法
        public long factorial(int m)
        {       
                int f=1;
                for(int i=1;i<=m;i++)
                        {f*=i;}
                 return f;
        }
        //实现myPower方法
        public long myPower(int m,int n)
        {
                int result=1;
                for(int i=1;i<=n;i++)
                {
                        result*=m;
                }
                        return result;
        }
        //实现findFactorSum方法
        /*public boolean findFactorSum(int m,int n);
        {
                if(m<n)
                {
                        if(n%m==0)
                        {
                                return true;
                        }
                }
                if(m>n)
                {
                        if(m%n==0)
                        {
                                return true;
                        }
                }
                else
                {
                        return false;
                }
        }*/
        public static void main(String[] args)
        {
                //创建一个Usb对象,当成FiveAndOne使用
                FiveAndOne obj = new Usb();
                System.out.println(obj.factorial(5));
                System.out.println(obj.myPower(5,6));
                //System.out.println(obj.findFactorSum(5,30));
        }
}

作者: osully    时间: 2014-3-28 11:43
第一
函数后面多了个分号,导致后面的主体失效

第二为了安全起见编译器要你必须返回值外面必须有一个

  1.         public boolean findFactorSum(int m, int n)
  2.         {
  3.                 if (m < n) {
  4.                         if (n % m == 0) {
  5.                                 return true;
  6.                         }
  7.                 }
  8.                 if (m > n) {
  9.                         if (m % n == 0) {
  10.                                 return true;
  11.                         }
  12.                 }
  13.                 else {
  14.                         return false;
  15.                 }
  16.                 return false;
  17.         }
复制代码

作者: yanzhendong    时间: 2014-3-28 11:52
第一个错误,楼主实现findFactorSum方法时后面多了一个; 还有楼主缺少返回语句,else关键字总是与理他最近的那个if匹配,也就是楼主的
  1. if(m>n)
  2.                  {
  3.                          if(m%n==0)
  4.                          {
  5.                                  return true;
  6.                          }
  7.                  }
  8.                  else
  9.                  {
  10.                          return false;
  11.                  }
复制代码
等价于:
  1.         if (m > n) {
  2.                         if (m % n == 0) {
  3.                                 return true;
  4.                        
  5.                 } else {
  6.                         return false;
  7.                 }
  8.         }
复制代码

这样当m>n为假时函数就没有返回值了




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