无法找到这段代码的问题

时间:2013-05-25 22:07:57

标签: java

我有这段代码,我想我已经涵盖了所有的括号。仍然没有关闭括号错误。当我放更多的牙套,然后给我一些别的东西。你能告诉我我在这里做错了什么吗?

    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;
                                 }
                         }
            }

        }
        }   
}

3 个答案:

答案 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来平衡括号,更容易阅读,看看是否错过了一个或需要一个