簡體   English   中英

可以在Java的math.max內部使用IF語句嗎?

[英]Can an IF statement be used inside math.max in Java?

我想知道是否可以在math.max中使用if語句。 例如,如果您有一個像這樣的對象:

    public class Obj {
        private int i;
        private boolean b;
        public void setInt(int newInt) {
            this.i = newInt;
        }
        public void setBool(boolean newBool) {
            this.b = newBool;
        }
        public int getInt() {
            return this.i;
        }
        public boolean getIsTrue() {
            return this.b;
        }
    }

初始化2個新對象並定義所有值后,可以執行以下操作:

    System.out.println(Math.max(if(obj1.getIsTrue()) {obj1.getInt()}, if (obj2.getIsTrue()) {obj2.getInt()}));

我知道這可以通過數組和for循環來完成,所以我不問這有沒有可能,只是是否可以以這種方式嵌套if語句。

Java中的if是一個語句而不是一個表達式 ,這意味着它不返回值。 只要可以提供有意義的else部分, 就可以使用條件表達式(也稱為三元運算符):

Math.max(obj1.getIsTrue() ? obj1.getInt() : 0, obj2.getIsTrue() ? obj2.getInt() : 0);

還要注意, Math.max()僅接收2個參數,而不是您期望的3個。

暫無
暫無

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

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