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

如何使用Java实现指定规则的数字序列打印,现有代码运行错误如何解决

原代码错误点

  • 循环内直接加了break语句,仅执行一次计算就强制退出循环,无法完成直到值为1的重复运算
  • 计算后的新值没有回写到num变量,每次循环都在对初始输入值做计算
  • 循环判断条件和输出逻辑不符合需求,打印时自动换行无法得到空格分隔的输出
  • 定义的notOne变量无实际作用,属于冗余代码

修正后代码

package victor;

import java.util.Scanner;

public class proj {
    public static void main(String[] args) {
        Scanner put = new Scanner(System.in);
        System.out.println("input::: ");
        int num = put.nextInt();
        // 循环直到num变为1为止
        while (num != 1) {
            int temp;
            if (num % 2 == 0) {
                temp = num / 2;
            } else {
                temp = num * 3 + 1;
            }
            // 打印结果用空格分隔,不换行
            System.out.print(temp + " ");
            // 更新num为新计算的值,用于下一轮循环
            num = temp;
        }
        put.close();
    }
}

验证

输入3时,运行输出为10 5 16 8 4 2 ,和示例结果一致,若要去掉末尾空格可额外做输出截断处理即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 22:45:04