三元操作员的意外输出


public static void main(String[] args) {
        int [] num = {1,4,3,6,8,5,3,1,9,7};
        int result = 0;
        for(int i=0;i<num.length ;i++)
        {
            for(int j =i+1;j<num.length;j++)
            {
                result += (num[i]==num[j]?1:0);
            }
        }
        System.out.println(result);
    }

我不明白为什么我将2作为输出,有人可以解释。

您的确切代码:

public static void main(String[] args) {
        int [] num = {1,4,3,6,8,5,3,1,9,7};
        int result = 0;
        for(int i=0;i<num.length ;i++){
            for(int j =i+1;j<num.length;j++){
                result += (num[i]==num[j]?1:0);
            }
        }
        System.out.println(result);
    } 

i=0j=7制作 result = 1;

时,第一次result += (num[i]==num[j]?1:0)将是正确的

第二次result += (num[i]==num[j]?1:0)i=2j=6制作结果= 2;

时将是正确的

最新更新