首页 > 解决方案 > 即使不应该接受输入,JAVA程序也会一直阻止终端输入

问题描述

所以我调试并找到了问题的根源。基本上,我正在运行一些测试用例和

 int no_of_test = Integer.parseInt(in.readLine());
 for(int t = 0;t<no_of_test;t++){//do something}`

工作正常。然而,

for(int t=0;t<Integer.parseInt(in.readLine());t++){//do something}

在这里,它在每次迭代后一直等待输入。

在 python 中我可以做到for t in range(int(input()),并且在每次迭代后它不会阻止输入,为什么在 JAVA 中不是这种情况?我错过了什么?

标签: java

解决方案


有不同的代码结构。

在 Python 示例range()中是函数。它被调用一次并返回整数序列作为结果。因此,循环遍历值序列。

在 Java 示例t < Integer.parseInt(in.readLine())中是循环条件,每次迭代都必须检查它。与您的 python 代码类似的 Java 可以是:

IntStream.range(0, Integer.parseInt(in.readLine())).forEach((e) -> {
    //...
});

推荐阅读