如何使用嵌套For循环打印指定数字图案?
用嵌套For循环打印指定数字图案的解法
嘿,我来帮你搞定这个嵌套循环的图案问题!先咱们把目标图案拆解开看看规律,这样思路就清晰多了:
目标图案:
1 2 3 4 2 3 4 1 3 4 1 2 4 1 2 3
仔细看的话,这个图案其实是由4个连续的子序列组成的,每个子序列有4个数字:
- 第1个子序列:从1开始,依次到4 →
1 2 3 4 - 第2个子序列:从2开始,到4后回到1 →
2 3 4 1 - 第3个子序列:从3开始,到4后回到1、2 →
3 4 1 2 - 第4个子序列:从4开始,回到1、2、3 →
4 1 2 3
找到规律就好办了!我们可以用嵌套For循环来实现,外层循环控制每个子序列的起始数字(从1到4),内层循环控制每个子序列里的4个数字。这里既可以用简洁的数学公式,也可以用基础的if条件判断来实现,下面给你两种思路:
解法一:用取模+if条件实现(简洁版)
public class PatternPrint { public static void main(String[] args) { // 外层循环:控制每个子序列的起始数字(1到4) for (int i = 1; i <= 4; i++) { // 内层循环:控制每个子序列的4个数字位置 for (int j = 0; j < 4; j++) { // 计算当前数字,超过4后通过取模回到起始 int num = (i + j - 1) % 4; // 取模结果为0时,对应数字4 if (num == 0) { num = 4; } // 打印数字加空格 System.out.print(num + " "); } } } }
解法二:用基础if判断实现(更直观)
如果觉得取模不好理解,也可以用更直白的条件判断来控制数字循环:
public class PatternPrint { public static void main(String[] args) { for (int i = 1; i <= 4; i++) { for (int j = 1; j <= 4; j++) { int num = i + j - 1; // 当数字超过4时,减去4回到1开始 if (num > 4) { num = num - 4; } System.out.print(num + " "); } } } }
代码逻辑说明
- 外层循环
i从1到4,对应4个子序列的起始数字; - 内层循环负责生成每个子序列里的4个数字,通过计算或条件判断,让数字在超过4后自动回到1继续;
- 逐个打印数字加空格,最终就能得到你需要的目标图案。
内容的提问来源于stack exchange,提问作者user9771132
相关产品推荐
相关产品推荐

