[英]A true value is returned to the caller , even with out specifying any return value in the return statement
public class FlourPacker {
public static boolean canPack(int bigCount, int smallCount, int goal) {
if ((bigCount < 0 || smallCount < 0 || goal < 0))
return false;
if ((bigCount * 5) < goal)
return ((goal - (bigCount * 5)) <= smallCount);
else return ((goal % 5) <= smallCount);
}
public static void main(String[] args) {
System.out.println(canPack(3, 0, 11));
}
}
所以在這個問題中bigCount
值 5, smallCount
值 1,我應該嘗試獲得目標數。 我不能用bigCount
超越(目標),但我可以用smallCount
。
但我的問題是,如何在最后一個if
和else
語句中我不需要為返回設置true
或false
? 當我運行它(即我創建的主要方法)時,它告訴我true
即使我從未在代碼中放置return true
。
您不需要專門指定true
或false
。 如果你這樣做了,那么你所有的 if 語句都必須是if (true)
或if (false)
。
因此,相反,您在 if 語句中編寫一個計算結果為true
或false
的表達式(以您的示例為例, if ((bigCount * 5) < goal)
將等價於if (true)
或if (false)
插入后在變量的值中)。
同樣的想法也適用於 return 語句( return ((goal % 5)<= smallCount)
將變為return true
或return false
)。
怎么在最后一個 if 和 else 語句中我不需要為返回設置真或假?
答案是因為您使用關系運算符返回比較操作的結果。 總是比較操作將返回真或假(布爾值)。
例如:當(goal - (bigCount * 5)) <= smallCount);
評估其輸出將始終是一個布爾值(真或假!!!)。 相應的 return 語句將把它返回給調用者(這里是一個打印語句)。 它將顯示在您的控制台上。
參考: 關系運算符
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.