基本级别的 Java 程序。缺少返回语句异常
Posted
技术标签:
【中文标题】基本级别的 Java 程序。缺少返回语句异常【英文标题】:Basic level Java program. Missing return statement exception 【发布时间】:2015-04-04 02:30:20 【问题描述】:我的 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;
【问题讨论】:
一个好的第一步是正确缩进你的代码。 不是异常,而是编译器错误。您在代码底部的if
的“then”分支中缺少 return 语句。建议:写return sum % 10 == sum? sum : chkCM(sum);
你没有使用 IDE 吗?为什么你的代码根本没有格式化?
【参考方案1】:
你需要在递归调用chkCM的时候添加return语句:
if(sum%10!=sum)
return chkCM(sum);
else
return sum;
【讨论】:
【参考方案2】:改变
if(sum%10!=sum)
chkCM(sum);
收件人:
if(sum%10!=sum)
return chkCM(sum);
【讨论】:
【参考方案3】:你应该写return chkCM(sum);
而不是chkCM(sum);
问题是,如果 if 子句 (if(sum%10!=sum)
) 为真,则该方法不会返回值
【讨论】:
以上是关于基本级别的 Java 程序。缺少返回语句异常的主要内容,如果未能解决你的问题,请参考以下文章