java - 即使不应该接受输入,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 中不是这种情况?我错过了什么?
解决方案
有不同的代码结构。
在 Python 示例range()
中是函数。它被调用一次并返回整数序列作为结果。因此,循环遍历值序列。
在 Java 示例t < Integer.parseInt(in.readLine())
中是循环条件,每次迭代都必须检查它。与您的 python 代码类似的 Java 可以是:
IntStream.range(0, Integer.parseInt(in.readLine())).forEach((e) -> {
//...
});
推荐阅读
- c - Makefile 变量:“MY_FILE”和“obj-m”之间的区别
- javascript - 如何在另一个数组中复制一个数组(Javascript)
- javascript - 在用 ` 字符引用的字符串中插入变量
- python - Mac OSX Python3 上没有名为“rocksdb”的模块
- performance - 处理帧率非常低且不可更改
- java - ArrayIndexOutOfBoundsException - ArrayLength
- python - 如何修复'sqlite3.OperationalError:靠近“?”:'python sqlite中的错误?
- linux - 如何找到一个接受一个或多个参数的 shell 脚本,并为每个命名 UTF-8 文件的参数输出一行?
- sql-server - 错误:目标表 [X] 不允许 UPDATE Row # [0] in bad file
- javascript - 如何找到jQuery错误的来源?