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

Java技术问题:如何配置for循环避免变量累加值超过100?

解决Java累加不超过100的循环问题

嘿,我来帮你梳理下问题所在,然后给出可行的解决方案!

首先,你的原代码有两个核心问题:

  • 只在循环外读取了一次用户输入的整数,所以每次循环都在累加同一个值,这自然会很快超过100;
  • for循环的终止条件x < 99太死板,没有考虑累加后的实际值是否接近100,逻辑上应该是累加值未达到100时继续循环。

根据你的需求——每次获取用户输入的整数并累加,直到累加值不超过100,我们可以这样修改代码:

import java.util.Scanner;

public class AccumulateTo100 {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        int x = 0;
        
        // 当累加值还没到100时继续循环
        while (x < 100) {
            System.out.print("请输入一个整数:");
            int in = input.nextInt();
            
            // 判断累加后是否会超过100
            if (x + in > 100) {
                // 只加剩下的部分,刚好到100
                x = 100;
                System.out.println("累加后达到100,停止循环");
            } else {
                x += in;
                System.out.println("当前累加值:" + x);
            }
        }
        
        input.close();
    }
}

当然,如果你坚持要用for循环(虽然while循环在这里更直观),也可以调整成这样:

import java.util.Scanner;

public class AccumulateTo100WithFor {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        int x = 0;
        
        // for循环的初始化、条件、更新都可以灵活调整
        for (; x < 100; ) {
            System.out.print("请输入一个整数:");
            int in = input.nextInt();
            
            if (x + in > 100) {
                x = 100;
                System.out.println("累加后达到100,停止循环");
            } else {
                x += in;
                System.out.println("当前累加值:" + x);
            }
        }
        
        input.close();
    }
}

关键调整点说明:

  • 将int in = input.nextInt()放到循环内部,确保每次循环都能获取新的用户输入;
  • 把循环条件改为x < 100,明确只有当累加值未达到100时才继续;
  • 增加了累加前的判断,避免超过100,确保最终累加值刚好停在100。

这样修改后,程序就会按照你的要求,每次获取用户输入并累加,直到刚好达到100就停止啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 07:27:44