Java for循环中的Scanner nextInt()

Java for循环中的Scanner nextInt(),java,for-loop,java.util.scanner,Java,For Loop,Java.util.scanner,类别代码 import java.util.*; public class Solution { public static void main(String[] args) { Scanner in = new Scanner(System.in); int n = in.nextInt(); ArrayList<ArrayList<Integer>> rows = new ArrayList<>()

类别代码

import java.util.*;

public class Solution {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();
        ArrayList<ArrayList<Integer>> rows = new ArrayList<>();

        for (int i = 0; i < n; i++) {
            int d = in.nextInt();
            ArrayList<Integer> row = new ArrayList<>();

            for (int j = 0; j < d; j++) {
                row.add(in.nextInt());
            }

            rows.add(row);
        }

        int q = in.nextInt();

        for (int i = 0; i < q; i++) {
            System.out.println("test");
            int x = in.nextInt();
            System.out.printf("test2");
            int y = in.nextInt();
            System.out.println("I dont get it");
            try {
                System.out.println(rows.get(x - 1).get(y - 1));
            } catch (IndexOutOfBoundsException e) {
                System.out.println("ERROR!");
            }
        }
    }
}
结果

74
52
37
ERROR!
ERROR!
我不明白nextInt()在最后一个循环中是如何工作的。为什么“我不明白”、“测试”、“测试2”这几行永远不会打印出来

为什么try块在循环结束时执行,而不是在循环过程中执行

stdout如何一次打印4个结果


请帮助。

我可以看到下面的输出和您的输入

test
test2I dont get it
74
test
test2I dont get it
52
test
test2I dont get it
37
test
test2I dont get it
ERROR!
test
test2I dont get it
ERROR!
只需删除.class并重新编译,然后根据您的输入进行检查。

Output array   --> rows=[[41, 77, 74, 22, 44], [12], [37, 34, 36, 52], [], [20, 22, 33]]
在前三次迭代中,它的打印

rows[0][2]=74
rows[2][3]=52
rows[2][0]=37
rows[3][2]=Error   

-->因为在您的输出数组中,第三个索引是一个空数组[],所以第二个位置没有任何内容

寻求调试帮助的问题(“此代码为什么不工作?”)必须包括所需的行为、特定的问题或错误以及在问题本身中重现该问题所需的最短代码。没有明确问题陈述的问题对其他读者没有用处。请参阅:。预期的是什么以及它产生的是什么?这似乎是一个调试问题。我不知道预期的输出是什么,但在读入每个值后,它可能有助于调试每个值。我通过将从STDIN读取的每个值打印到STDOUT来模拟这一点。请提供预期的行为和输出,以便我们可以更好地帮助您,但也许此输出已经帮助您确定问题?PS:输出与您描述的不同。您是否正确编译并重新运行了代码..:当然,这些“丢失”的打印并没有丢失,您可能忘记了正确地重新编译代码。删除类文件,重建并重新运行。我看不到提供的输入有任何问题。。再次编译并检查是的,我想这是IDE的问题。谢谢
rows[0][2]=74
rows[2][3]=52
rows[2][0]=37
rows[3][2]=Error