You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

嵌套循环+三元运算符的Java代码为何输出结果为2?

为什么这段Java代码的输出是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 < j的情况,不会重复统计同一个配对(比如不会既算索引0和7,又算7和0)。

具体来说:

  • 外层循环i逐个遍历数组里的每个元素
  • 内层循环j从i+1开始,只遍历i之后的元素,避免重复计数
  • 三元表达式num[i]==num[j]?1:0:如果两个元素相等,就给result加1;不相等就加0(等于没变化)

对应数组的具体计算

咱们看给定的数组{1,4,3,6,8,5,3,1,9,7},找一下符合条件的配对:

  • 索引0的1 和 索引7的1:这是第一对,result加1
  • 索引2的3 和 索引6的3:这是第二对,result再加1

其他元素都是唯一的,没有更多相等的配对了。所以最终result的值就是1+1=2,这就是输出结果为2的原因。

举个额外的例子帮你加深理解:如果数组是{2,2,2},那符合条件的配对是(0,1)、(0,2)、(1,2),运行代码后输出会是3哦。

内容的提问来源于stack exchange,提问作者Bilguun enkhee

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.12 03:43:16