0

I have this piece of code, I think I have all the braces covered. Still getting braces not closed error. When I put more braces, then gives me something else. Can you anybody tell me what I am doing wrong here?

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

        }
        }   
}
4

3 回答 3

1

由于您的 if-else 条件,它可能无法返回布尔值。这就是问题所在。检查您的代码逻辑。

于 2013-05-25T22:15:23.567 回答
0

我不认为您缺少任何大括号,但您并没有为每个可能的执行路径返回值。

如果你在函数的底部放一个 return false ,它将编译。

小提示,为读者节省所有嵌套的 if 和大括号:

if(day>0 && day<= 28){
  return true;
else{
  return false; 
}

你可以这样做:

return day > 0 && day <= 28;
于 2013-05-25T22:14:49.767 回答
0

如果您使用的是 Eclipse,请使用 ctrl shift f 来平衡大括号,以便于阅读并查看您是否遗漏了一个或需要一个

于 2013-05-25T22:47:30.050 回答