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

Java中do-while循环运行异常求助:重复执行两数求和流程失败

嘿,作为Java新手碰到do-while循环的问题太正常啦!我先给你一个能完美实现「重复输入两数求和」的完整代码,再拆解你可能踩的那些新手坑~

能正常运行的示例代码

import java.util.Scanner;

public class RepeatSum {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        boolean keepRunning = true; // 控制循环的开关

        do {
            // 读取第一个数
            System.out.print("请输入第一个整数:");
            int num1 = input.nextInt();

            // 读取第二个数
            System.out.print("请输入第二个整数:");
            int num2 = input.nextInt();

            // 计算并输出求和结果
            int total = num1 + num2;
            System.out.println("两个数的和为:" + total);

            // 询问是否继续,这里要处理nextInt留下的换行符!
            System.out.print("要继续求和吗?输入Y继续,其他键退出:");
            input.nextLine(); // 吃掉输入数字后残留的换行符
            String choice = input.nextLine();

            // 更新循环条件(你说不需要字符串比较,也可以用char判断,这里用简单的方式)
            keepRunning = choice.trim().equalsIgnoreCase("y");

        } while (keepRunning); // 只要开关为true就重复循环

        input.close();
        System.out.println("程序结束~");
    }
}

你代码可能失效的常见原因

咱新手写do-while最容易踩这几个坑:

  • Scanner缓冲区的换行符残留:用nextInt()读取数字后,用户按下的回车键会留在输入缓冲区里,如果你直接用nextLine()读取后续的选择,会读到空字符串,导致循环直接终止。上面代码里的input.nextLine()就是用来解决这个问题的,一定要加!
  • 循环条件写错:比如把while里的条件写成了false,或者逻辑搞反了(比如本来想满足条件继续循环,结果写成了满足就退出)。
  • 控制变量的作用域错误:如果把控制循环的变量(比如上面的keepRunning)定义在do代码块内部,那while条件里根本访问不到,直接编译报错。必须把这类变量放在循环外面定义。
  • 没有正确初始化循环控制变量:比如你用一个char变量控制循环,但没提前赋值,编译器会报错说变量未初始化。

如果你的代码里有这些问题,对照着改一下应该就能正常运行啦~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 08:55:10