三元运算符的意外输出

时间:2019-02-19 14:53:26

标签: java

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作为输出,有人可以解释一下。

1 个答案:

答案 0 :(得分: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);
    } 

result += (num[i]==num[j]?1:0)i=0使结果= 1;

时,第一次j=7为真

result += (num[i]==num[j]?1:0)i=2使结果= 2;

时,第二时间j=6将为真