我有这段代码,我想我已经涵盖了所有的括号。仍然没有关闭括号错误。当我放更多的牙套,然后给我一些别的东西。你能告诉我我在这里做错了什么吗?
public static boolean isValid(int day, int month, int year)
{
if (year < 1900)
{
return false;
}
else {
if (month>0 && month<13)
{
if (month==1 || month==3 || month==5 || month==7 || month==8 || month==10 || month==12)
{
return day > 0 && day <=31;
}
else if (month==4 || month==6 || month==9 || month==11)
{
return day>0 && day<=30;
}
else if (month==2)
{
if (isLeap(year))
{
//(d= 29);
return day>0 && day <=29;
}
else {
return day>0 && day<= 28;
}
}
}
}
}
}
答案 0 :(得分:1)
由于你的if-else条件,它可能无法返回布尔值。这就是问题。检查代码的逻辑。
答案 1 :(得分:0)
我认为你没有遗漏任何大括号,但你没有为每个可能的执行路径返回值。
如果你在函数的底部放置一个返回false,它将编译。
小小的提示,为读者保存所有嵌套的ifs和大括号:
if(day>0 && day<= 28){
return true;
else{
return false;
}
你可以这样做:
return day > 0 && day <= 28;
答案 2 :(得分:0)
如果您正在使用eclipse,请使用ctrl shift f来平衡括号,更容易阅读,看看是否错过了一个或需要一个