这个简单JAVA程序错在哪里??

2025-03-13 10:59:52
推荐回答(5个)
回答1:

public static int getDay(int year ,int month){
int i=0;
if(month==1||month==3||month==5)
return i=31;
if(month==4||month==6)
return i=30;
return i;
}
改为以上这样。原因是:
系统必须确保你有返回一个int值,而如果你将值放在if语句中的话,它会认为“如果if语句都不成立的话,那岂不是没有int值返回了?”,所以,这个情况是不允许的。
还是不明白的话问我^_^

回答2:

其实程序的意思并不是说你返回的不是int型的值,看看你写的语句,两个if语句,程序会认为还有其他的可能,也就是说如果方法接受了一个月份为7,你要反回什么?程序是考虑到你的语句写的不严谨才报的错,把你的语句改成

public static int getDay(int year ,int month){
if(month==1||month==3||month==5)
return 31;
else if(month==4||month==6)
return 30;
else{
//处理语句
};
}

这样程序就认为你这个方法可以对于任何结果都有一个相对应的结果,就不会有问题了。

回答3:

这样的
如果你输入的不是13546那么结果不就是什么也不返回了么。
改成
public static int getDay(int year ,int month){
if(month==1||month==3||month==5)
return 31;
if(month==4||month==6)
return 30;
else return 28;
}

回答4:

以上代码应该是没问题,还是你在调用此方法时用来保存此方法的类型不是int型的

回答5:

你的返回语句都放在了if语句中,如果if都不成立,不就没有返回值了,程序不够严谨,你应该用一个变量来存储要返回的值,然后把最终结果返回就行了,1楼正解,2、3、4楼的不要忽悠人。