java - 输入负数后循环不终止

标签 java loops do-while

我正在编写一个应该读取正整数列表(包括 0)的程序。如果用户输入超过 100 个数字或输入负数,则循环应该终止。

我尝试做一个简单的 do-while 循环来解决这个要求,但在运行时,无论我提供多少数字,循环都不会终止。我试过几次改变循环,但到目前为止都没有成功。我一定是犯了一个非常微妙的菜鸟错误,但我似乎无法捕捉到它。

    int[] list = new int[100];
    int size=0;
    do{
        list[size] = kbd.nextInt();
        size++;
    }while((size < 100) && (list[size] >= 0));


}

最佳答案

您的问题是您在测试 list[size] >= 0 之前增加了 size。您应该将其更改为

do{
    list[size] = kbd.nextInt();
    size++;
}while((size < 100) && (list[size-1] >= 0));

关于java - 输入负数后循环不终止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43354377/

相关文章:

c# - Java和C#之间的通信

java - 如何检测哪个 fragment 处于 Activity 状态?

loops - 结果后的 Prolog 循环

c - 返回主菜单时出现问题 - C 编程

java - 安卓数据网格

java - 使用具有多个实现的接口(interface)的 Spring 依赖注入(inject)

loops - Rust 中迭代器的嵌套循环

sql - 无限循环触发器

java - 如何解决Java中的线程错误(ArrayIndexOutOfBoundsException)异常?

c - 为什么它不留在循环内,在 c 中执行 while