真の値であってもreturn文で任意の戻り値を指定して実行して、呼び出し元に返されます

T.Cook:
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復帰のために?私は(私が作成していること、すなわち。mainメソッド)を実行すると、それは私に語ったtrue私は絶対に入れないにもかかわらず、return trueコードに。

Nybbit:

あなたは指定する必要はありませんtruefalse、具体的。あなたがした場合は、すべてあなたのif文がなければならないであろうif (true)if (false)

だから、代わりに、あなたは評価さにすることをif文の内部表現の書き込みtrueまたはfalse(あなたの例を取ると、if ((bigCount * 5) < goal)内と同等になるif (true)if (false)の変数から値をプラグインした後)。

これと同じ考え方は、(return文のために行くreturn ((goal % 5)<= smallCount)になるだろうreturn truereturn false)。

おすすめ

転載: http://10.200.1.11:23101/article/api/json?id=378586&siteId=1
おすすめ