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

这一个方法publicstaticintgetDay(intyear,intmonth){if(month==1||month==3||month==5)return31... 这一个方法
public static int getDay(int year ,int month){
if(month==1||month==3||month==5)
return 31;
if(month==4||month==6)
return 30;
}

这个方法还没写全,主要就是要用这个方法返回一个月的天数
当month为1、3、5…………就返回31
我这样写应该对吧
可是为什么运行时出错
提示是“必须返回一个int类型的值”
返回的31 30 不就是int 类型吗???
展开
 我来答
fighterJACK
2009-11-30 · TA获得超过1204个赞
知道小有建树答主
回答量:179
采纳率:0%
帮助的人:126万
展开全部
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值返回了?”,所以,这个情况是不允许的。
还是不明白的话问我^_^
不格不E
2009-11-30 · TA获得超过656个赞
知道小有建树答主
回答量:222
采纳率:0%
帮助的人:0
展开全部
其实程序的意思并不是说你返回的不是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{
//处理语句
};
}

这样程序就认为你这个方法可以对于任何结果都有一个相对应的结果,就不会有问题了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lizard1861
2009-11-30 · TA获得超过800个赞
知道小有建树答主
回答量:543
采纳率:0%
帮助的人:696万
展开全部
这样的
如果你输入的不是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;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友e829334c0
2009-11-30 · TA获得超过473个赞
知道小有建树答主
回答量:1066
采纳率:0%
帮助的人:851万
展开全部
以上代码应该是没问题,还是你在调用此方法时用来保存此方法的类型不是int型的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友7d83332
2009-11-30 · TA获得超过208个赞
知道小有建树答主
回答量:139
采纳率:0%
帮助的人:89.1万
展开全部
你的返回语句都放在了if语句中,如果if都不成立,不就没有返回值了,程序不够严谨,你应该用一个变量来存储要返回的值,然后把最终结果返回就行了,1楼正解,2、3、4楼的不要忽悠人。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式