基本级别的Java程序.缺少返回语句异常



我不断收到错误"缺少返回语句"为我的int chkCM(int n)函数。有什么想法吗?P.S该程序是检查输入的数字是否是复合幻数。

这是我的代码:

import java.util.Scanner;
class Composite_Magic{
    public static void main (String args[]){
    Scanner s=new Scanner (System.in);
    System.out.println("Enter a number to check if it is a Composite Magic number or not");
    int n=s.nextInt();
    boolean isPrime=false;
        for(int i=2;i<=(n/2);i++)
            if(n%i==0)
                isPrime=true;
        if(isPrime==false){
            if(chkCM(n)==n)
              System.out.println("Composite Magic Number");
            else
              System.out.println("Not a Composite Magic Number");        
        }
    else
        System.out.println("Not a Composite number");
    }
    static int chkCM(int n){
    int sum=0;    
    while(n!=0){
        sum+=n%10;
        n/=10;
    }
    n=sum;
    if(sum%10!=sum)
        chkCM(sum);
    else
        return sum;        
    }
}

您需要在对chkCM的递归调用中添加一个return语句:

 if(sum%10!=sum)
    return chkCM(sum);
    else
    return sum;  

更改

if(sum%10!=sum)
    chkCM(sum);

自:

if(sum%10!=sum)
    return chkCM(sum);

而不是chkCM(sum);你应该写return chkCM(sum);

问题是,如果 if 子句 (if(sum%10!=sum)) 为 true,该方法将不会返回值

最新更新