爲什麼沒有這種結構可以接受嗎?無論如何,它返回一個布爾值對嗎?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