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

Java中如何用Scanner输入0时通过break终止循环?

修正Java Scanner循环输入终止问题

原代码存在几个核心逻辑错误,导致无法实现需求:

  • 初始读取x后,while循环中重复调用input.nextLong(),导致输入和判断逻辑脱节,每次循环会额外消耗一次输入
  • while的条件写反,当前逻辑是"输入为0时才进入循环",和需求的"输入非0时继续循环"完全相反
  • 循环内没有重新提示用户输入,也未更新x的值,无法实现重复输入的流程

以下是修正后的代码,完全符合需求:

import java.util.Scanner;

public class ex1 {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        
        // 无限循环,直到输入0时终止
        while (true) {
            System.out.print("Enter any number or enter 0 to stop: ");
            long x = input.nextLong();
            
            if (x == 0) {
                break; // 输入0时执行break终止循环
            }
            // 若需要对非0输入做处理,可在此添加逻辑
        }
        
        input.close(); // 关闭Scanner释放资源
    }
}

修正说明:

  • 用while(true)构建无限循环,保证程序会持续提示用户输入
  • 将输入读取、提示语句都放在循环内部,每次循环都会获取新的输入值
  • 当检测到输入为0时,立即通过break终止循环,完全匹配需求
  • 添加input.close()规范关闭IO资源,避免资源泄漏

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 20:20:30