A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

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));
        }
}

评分

参与人数 1技术分 +1 收起 理由
何伟超 + 1 赞一个!

查看全部评分

2 个回复

正序浏览
第一个错误,楼主实现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为假时函数就没有返回值了

评分

参与人数 1技术分 +1 收起 理由
枫儿 + 1 赞一个!

查看全部评分

回复 使用道具 举报
第一
函数后面多了个分号,导致后面的主体失效

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

  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.         }
复制代码

评分

参与人数 1技术分 +1 收起 理由
枫儿 + 1 赞一个!

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马