为什么这种结构不可接受?无论如何它返回一个布尔值对吗?
public boolean a()
{
if(condition)
{
if(condition)
{
if(condition)
{
return true;
}
}
}
}
为什么这种结构不可接受?无论如何它返回一个布尔值对吗?
public boolean a()
{
if(condition)
{
if(condition)
{
if(condition)
{
return true;
}
}
}
}
这是无效的,因为有可能什么都不返回。您的方法被声明为返回一个布尔值,因此无论内部逻辑如何,它都必须在方法完成之前在代码中的某个点返回一个布尔值。如果您的 if 语句if (condition)
为 false,则该方法没有另一个 return 语句,因此代码甚至无法编译。要解决此问题,请添加“默认”返回值:
public boolean a()
{
if(condition)
{
if(condition)
{
if(condition)
{
return true;
}
}
}
return false;
}
无效,因为您需要返回一些默认值 ( 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
正如上面正确回答的那样,您绝对必须在 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;
所以无论如何都会返回一个值。从好的方面来说,可读性增加
虽然该方法在条件满足时返回true
,但在条件不满足时它没有指定返回值。该方法应涵盖所有代码路径(读取条件语句)。