请求解析这段Java嵌套循环代码的执行逻辑与输出结果
三层嵌套for循环执行逻辑与输出解析
先看格式化后的代码:
public class test { public static void main(String[] args) { for(int i = 2; i <= 8; i = i + 2){ for (int j = i; j <= 4; j++){ for(int k = 1; k <= j; k = k + i){ System.out.println(i + " , " + j + " , " + k); } } } } }
执行逻辑拆解
从外到内逐层分析循环的运行流程:
1. 最外层i循环
i从2开始,每次加2,直到超过8为止,所以i的取值是2、4、6、8。
2. 中间层j循环
j的初始值等于当前的i,只要j≤4就会循环。注意:当i=6或8时,j一开始就大于4,这层循环直接跳过,不会进入内层k循环。
当i=2时:
j从2开始,依次取2、3、4,每个j值都会触发内层k循环,直到j自增到5才退出。
当i=4时:
j初始为4,满足≤4的条件,触发一次内层k循环,j自增到5后退出。
3. 最内层k循环
k从1开始,每次加当前的i,只要k≤j就会执行输出,直到k超过j为止。
逐个场景分析输出:
- i=2,j=2:k=1时满足≤2,输出
2 , 2 , 1;k加2变成3,超过2,循环结束。 - i=2,j=3:k=1时输出
2 , 3 , 1;k加2变成3,满足≤3,输出2 , 3 , 3;k再加2变成5,超过3,循环结束。 - i=2,j=4:k=1时输出
2 , 4 , 1;k加2变成3,满足≤4,输出2 , 4 , 3;k再加2变成5,超过4,循环结束。 - i=4,j=4:k=1时输出
4 , 4 , 1;k加4变成5,超过4,循环结束。
最终输出结果
按执行顺序,输出内容如下:
2 , 2 , 1 2 , 3 , 1 2 , 3 , 3 2 , 4 , 1 2 , 4 , 3 4 , 4 , 1
内容的提问来源于stack exchange,提问作者DominickLim4
相关产品推荐
相关产品推荐

