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

编程新手求助:0-100范围数字处理及负数转正实现方案

问题分析与代码修正

先看你代码里的几个关键问题:

  • 用到了未定义的变量user1,这会直接导致编译失败
  • 两个条件判断的逻辑完全重复且不合理,if和else if用了同一个条件user1 > range,根本没法区分不同场景
  • 负数转正的逻辑只放在了else分支,不符合“输入负数就转成正数”的核心需求
  • 代码缺少类和主方法的包裹,Java程序必须放在类中,入口是main方法

正确解决思路

  1. 先获取用户输入的整数
  2. 处理负数:如果输入数字小于0,将其转换为正数(可以用Math.abs()方法,或者直接乘以-1)
  3. 判断转换后的数字是否在0-100范围内,给出对应的提示信息

修正后的代码

import java.util.Scanner;

public class NumberHandler {
    public static void main(String[] args) {
        System.out.print("Enter a number: ");
        Scanner input = new Scanner(System.in);
        int num = input.nextInt();
        
        // 处理负数,转换为正数
        if (num < 0) {
            num = -num; // 或者用 num = Math.abs(num);
            System.out.println("Negative number converted to positive: " + num);
        }
        
        // 判断是否在0-100范围内
        if (num >= 0 && num <= 100) {
            System.out.println("A correct number was entered");
        } else {
            System.out.println("An incorrect number was entered");
        }
        
        input.close();
    }
}

代码说明

  • 导入Scanner类用于读取用户输入
  • 定义类和main方法,这是Java程序的基本运行结构
  • 先判断输入是否为负数,是的话直接转换为正数并提示用户
  • 再判断转换后的数字是否在0到100之间,输出对应的正确/错误提示
  • 最后关闭Scanner资源,避免资源泄漏

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 03:15:24