簡體   English   中英

即使未在 return 語句中指定任何返回值,也會向調用者返回真值

[英]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

但我的問題是,如何在最后一個ifelse語句中我不需要為返回設置truefalse 當我運行它(即我創建的主要方法)時,它告訴我true即使我從未在代碼中放置return true

您不需要專門指定truefalse 如果你這樣做了,那么你所有的 if 語句都必須是if (true)if (false)

因此,相反,您在 if 語句中編寫一個計算結果為truefalse的表達式(以您的示例為例, if ((bigCount * 5) < goal)將等價於if (true)if (false)插入后在變量的值中)。

同樣的想法也適用於 return 語句( return ((goal % 5)<= smallCount)將變為return truereturn false )。

怎么在最后一個 if 和 else 語句中我不需要為返回設置真或假?

答案是因為您使用關系運算符返回比較操作的結果 總是比較操作將返回真或假(布爾值)。

例如:當(goal - (bigCount * 5)) <= smallCount); 評估其輸出將始終是一個布爾值(真或假!!!)。 相應的 return 語句將把它返回給調用者(這里是一個打印語句)。 它將顯示在您的控制台上。

參考: 關系運算符

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM