Java for循环正在无限期执行
我无法理解,为什么即使条件给出正确,for循环仍会无限期地执行,请帮助我,这让我发疯Java for循环正在无限期执行,java,Java,我无法理解,为什么即使条件给出正确,for循环仍会无限期地执行,请帮助我,这让我发疯 public static void main(String args[] ) throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int n=Integer.parseInt(br.readLine()); //System.out.
public static void main(String args[] ) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n=Integer.parseInt(br.readLine());
//System.out.println(n);
long[] a = new long[n+1];
long[] b = new long[n+1];
for(int k=1;k<=n;k++)
{
String[] str = br.readLine().split(" ");
a[k]=Long.parseLong(str[0]);
b[k]= Long.parseLong(str[1]);
}
}
}
java.io.BufferedReader.readline方法读取一行文本 一条线路被认为是由任何一条线路馈线终止的 “\n”、回车号“\r”或其后的回车号 立即通过换行
基本上,您没有传递任何输入,br.readLine正在不断地从System.in读取,因为它无法识别在何处终止该行。您的程序在我的机器上运行良好 我建议你做的一个改变是使用0而不是1
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
long[] a = new long[n];
long[] b = new long[n];
for (int k = 0; k < n; k++) {
String[] str = br.readLine().split(" ");
a[k] = Long.parseLong(str[0]);
b[k] = Long.parseLong(str[1]);
}
System.out.println(Arrays.toString(a) + " " + Arrays.toString(b));
Output:
3
1 2
4 3
6 2
[1, 4, 6] [2, 3, 2]
如果这样做,根据逻辑,数组将只包含前两个数字,而忽略其余数字。由于readLine考虑了整行内容。我不完全理解您试图实现的目标,但代码会编译并运行,然后使用以下示例输入退出: 二, 5.5
6检查n的值。您是否尝试过使用一些原始数据,循环中到底发生了什么?您可能遇到异常,或者n为0。它工作正常。给出一个输入样本和你所期望的。对于n的任何值,它的读数是无限次的。
3
1 2 3 4 5 6