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

如何生成循环移位数字正方形?Java代码输出异常的调整咨询

解决Java数字循环输出问题:生成1234、2341、3412、4123格式的数字行

嘿,我明白你想要实现的效果了——每一行都是4个连续循环的数字,从当前起始数开始,到4之后自动绕回1,对吧?你的原代码之所以输出1234、234、34、4,是因为内层循环只从i遍历到4,没有处理“超过4后回到1”的逻辑,而且每行的数字个数越来越少。

方案一:用条件判断实现循环

我们可以让内层循环固定执行4次(因为每行需要4个数字),每次计算当前要输出的数字,当数字超过4时,减去4回到1的起始点:

for (int i = 1; i <= 4; i++) {
    for (int j = 0; j < 4; j++) {
        int num = i + j;
        // 当数字超过4时,减去4回到1-3的范围
        if (num > 4) {
            num -= 4;
        }
        System.out.print(num);
    }
    System.out.println();
}

逻辑解释:

  • 外层循环控制每行的起始数字i(从1到4)
  • 内层循环跑4次,每次计算i+j:
    • 第一行i=1:1+0=1、1+1=2、1+2=3、1+3=4 → 输出1234
    • 第二行i=2:2+0=2、2+1=3、2+2=4、2+3=5(5>4,减4得1)→ 输出2341
    • 后续行以此类推,正好得到你想要的结果

方案二:用取模运算简化代码

取模运算可以更简洁地处理循环计数,避免条件判断。核心思路是把数字范围转换为0-3,取模后再转回1-4:

for (int i = 1; i <= 4; i++) {
    for (int j = 0; j < 4; j++) {
        // 先减1将范围转为0-3,取模后再加1回到1-4
        int num = (i + j - 1) % 4 + 1;
        System.out.print(num);
    }
    System.out.println();
}

逻辑解释:

  • i+j-1:把起始数字从1-4转为0-3(比如i=4时,4-1=3)
  • %4:确保结果始终在0-3之间(超过3的数取模后会循环)
  • +1:把结果转回1-4的范围,得到我们需要的数字

两种方案都能完美生成你想要的1234、2341、3412、4123格式输出,你可以根据自己的习惯选择使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 06:33:44