为什么没有这种结构可以接受吗?无论如何,它返回一个布尔值对吗?Java的嵌套相关查询
public boolean a()
{
if(condition)
{
if(condition)
{
if(condition)
{
return true;
}
}
}
}
为什么没有这种结构可以接受吗?无论如何,它返回一个布尔值对吗?Java的嵌套相关查询
public boolean a()
{
if(condition)
{
if(condition)
{
if(condition)
{
return true;
}
}
}
}
这是无效的,因为有可能没有任何返回。你的方法被声明为返回一个布尔值,所以它必须在方法结束之前在代码的某个点返回一个布尔值,而不管内部逻辑如何。如果您的if语句if (condition)
为false,则该方法没有其他return语句,因此代码甚至不会编译。因为你需要做一回一些默认值(return
)
public boolean a()
{
if(condition)
{
if(condition)
{
if(condition)
{
return true;
}
}
}
return false;
}
无效:要解决这个问题,添加一个“默认”的返回值。
什么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
虽然该方法返回true
当满足条件,当条件不是 satisf它没有指定一个返回值IED。该方法应该覆盖所有代码路径(读取条件语句)。
正如上述回答正确的状态,你绝对有在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;
这样的值被返回无论是什么水平。从有利的一面,可读性增加
如果所有要退回的控制研究流动导致的值是可以接受的 –
@迪克森:你应该明白,如果,如果条件不满足,它不会返回任何东西之一。 – namalfernandolk