所以我进行了调试并找到了问题的根源。基本上,我正在运行一些测试用例并且
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中不是这样?我是什么失踪了?
最佳答案
与
for(int t=0;t<Integer.parseInt(in.readLine());t++){//do something}
每次迭代都会重新评估Integer.parseInt(in.readLine())
部分。
而与
int no_of_test = Integer.parseInt(in.readLine());
for(int t = 0;t<no_of_test;t++){//do something}
Integer.parseInt(in.readLine())
仅计算一次。
关于JAVA 程序不断阻止终端输入,即使它不应该接受输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55304123/