0

为什么这种结构不可接受?无论如何它返回一个布尔值对吗?

public boolean a()
{

    if(condition)
    {
        if(condition)
        {
            if(condition)
            {
                return true;
            }
        }
    }

} 
4

4 回答 4

4

这是无效的,因为有可能什么都不返回。您的方法被声明为返回一个布尔值,因此无论内部逻辑如何,它都必须在方法完成之前在代码中的某个点返回一个布尔值。如果您的 if 语句if (condition)为 false,则该方法没有另一个 return 语句,因此代码甚至无法编译。要解决此问题,请添加“默认”返回值:

public boolean a()
{
    if(condition)
    {
        if(condition)
        {
            if(condition)
            {
                return true;
            }
        }
    }
    return false;
} 
于 2013-08-03T08:15:41.327 回答
3

无效,因为您需要返回一些默认值 ( return)。

什么if 条件不满足??

有效的是:

public boolean a()
    {

        if(condition)
        {
            if(condition)
            {
                if(condition)
                {
                    return true;
                }
            }
        }
    return false;

    } 

作为旁注,为了使您的代码模式可读,我建议

  if(condition && condition && condition) 
        {
         return true;
        }
  return false;

更喜欢阅读 jls-14.17

于 2013-08-03T08:17:04.557 回答
0

正如上面正确回答的那样,您绝对必须在 Java 中返回一些东西。C真的不在乎。

为了避免这种情况,我建议降低嵌套级别以执行类似的操作

boolean value=false; //default return
if(cond && cond)
    return value;
if(cond)
    return false; //if you want to be more specific
if(cond)
    value=true;

return value;

所以无论如何都会返回一个值。从好的方面来说,可读性增加

于 2013-08-03T08:22:21.453 回答
0

虽然该方法在条件满足时返回true,但在条件不满足时它没有指定返回。该方法应涵盖所有代码路径(读取条件语句)。

于 2013-08-03T08:18:08.567 回答