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

如何不使用break语句退出输入整数场景下的Java for循环?

替代break退出for循环的方案

首先要指出原代码存在的一个问题:每次循环里调用了两次keyboard.nextInt(),这会导致用户输入的奇数位数值仅用于判断是否为0,偶数位数值才会被存入数组,相当于无故跳过了一半输入内容,需要先修正这个问题,再实现无break的循环退出逻辑。

方案一:修改for循环的控制变量

通过在循环内部修改循环控制变量i,让for循环的终止条件提前满足,从而自然退出循环:

public static void enterInts()
{
    int i = 0;
    int[] userArray = new int[9];
    int input;
    
    System.out.println("Enter up to 10 integers, type 0 when done");
    
    for(i = 0; i < userArray.length; i++)           
    {
        input = keyboard.nextInt();
        if (input == 0)    
            // 修改i的值让循环条件不成立,直接退出
            i = userArray.length;
        else
            userArray[i] = input;
    }//for
    posOrNeg(userArray);
}//enterInts

方案二:改用while循环重构

如果允许更换循环类型,while循环的写法会更直观,完全不需要依赖break:

public static void enterInts()
{
    int i = 0;
    int[] userArray = new int[9];
    int input;
    
    System.out.println("Enter up to 10 integers, type 0 when done");
    
    while (i < userArray.length)           
    {
        input = keyboard.nextInt();
        if (input == 0)    
            // 修改i的值让循环条件不成立,直接退出
            i = userArray.length;
        else {
            userArray[i] = input;
            i++;
        }
    }//while
    posOrNeg(userArray);
}//enterInts

核心逻辑都是通过调整循环控制变量,让循环的终止条件提前触发,从而替代break语句实现退出效果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 15:15:38