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

求助:使用Java while循环完成指定数字输出编程作业

问题分析与修正方案

原代码核心问题

  1. 第一行输出时直接修改了输入的number变量,导致第二行计算起始值和循环范围时,使用的是已经被篡改后的数值,而非用户最初输入的原始值。
  2. 第二行的循环条件while(-number>=0)逻辑完全错误,无法覆盖到输出到原始输入number的要求。

修正后的完整代码

import java.util.Scanner;
public class Exercise 
{
    public static void main(String[] args) 
    {
        Scanner myScanner = new Scanner(System.in);
        int originalNumber = myScanner.nextInt();
        
        // 第一行:输出从originalNumber到1,无正数则输出空行
        int temp = originalNumber;
        while (temp >= 1) {
            System.out.print(temp + " ");
            temp--;
        }
        System.out.println(); // 确保换行,空行要求自动满足
        
        // 第二行:输出从-originalNumber到originalNumber
        temp = -originalNumber;
        while (temp <= originalNumber) {
            System.out.print(temp + " ");
            temp++;
        }
        System.out.println();
    }
}

关键修改说明

  • 新增originalNumber变量保存用户输入的初始值,彻底避免后续变量修改对逻辑的干扰。
  • 第一行使用临时变量temp遍历输出,不改动原始输入值。当输入为0时,while(temp >=1)不会执行,直接输出空行,符合题目要求。
  • 第二行循环条件改为temp <= originalNumber,确保遍历范围准确覆盖从-originalNumber到originalNumber的所有整数。
  • 移除了冗余的if-else判断,简化逻辑的同时保证所有场景都能正确处理。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 14:35:33