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

Java嵌套循环执行次数与预期不符的技术咨询

问题分析与解决方案

嘿,我来帮你拆解一下这个问题,搞清楚为什么会出现8行输出,以及结果变化的原因~

为什么会输出8行?

咱们先看你的外层循环:

for (int i = 2; i <= 4; i+=2)

这个循环的执行过程是这样的:

  • 第一次:i=2,满足i<=4,进入循环体
  • 执行完后,i +=2 → i=4,再次满足i<=4,进入循环体
  • 再执行完后,i +=2 → i=6,不满足i<=4,外层循环结束

也就是说,外层循环一共执行了2次。

而你的内层循环:

for (int j =1; j < 5; j++)

j从1到4,每次循环会执行4次(j=1、2、3、4)。

2次外层循环 × 4次内层循环 = 8次输出,这就是为什么你会看到8行结果啦。

为什么后面四次结果会变化?

再看你打印的代码:

System.out.println("2 times " + j + " = " + (i*j));

这里的字符串部分"2 times "是写死的,但计算乘积用的是变量i。第一次外层循环时i=2,所以乘积是2*j,结果符合“2 times”的描述;但第二次外层循环时i=4,乘积变成了4*j,可你打印的字符串还是写的“2 times”,就出现了比如2 times 1 = 4这种矛盾的结果。

修正方案

如果你只想生成4次输出(也就是2的1-4倍乘法表),其实不需要外层循环,直接用内层循环就可以:

for (int j = 1; j < 5; j++) {
    System.out.println("2 times " + j + " = " + (2 * j));
}

这样运行后就会输出你预期的4行结果:

2 times 1 = 2
2 times 2 = 4
2 times 3 = 6
2 times 4 = 8

如果你本来是想通过i控制乘数,但只想输出4次,那可以调整外层循环的条件,比如只让i取一次值(比如去掉外层循环,或者把外层循环的终止条件改成i<3)。

内容的提问来源于stack exchange,提问作者Sunny Kk

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 08:00:16