0

代码:

int size=0;
Scanner in = new Scanner(System.in);     
System.out.println("Enter size of the Graph");
size = in.nextInt();
System.out.println(size);
for (int i = 1; i <= size; i++) {
    Scanner in2 =new Scanner(System.in);
    while(in2.hasNextInt()){
        int num = in2.nextInt();
        System.out.print("(" + i + "," + num + ")"+",");
        System.out.println();
    }
    System.out.println("out of the while loop");
}

输入输出:

Enter size of the Graph
4
4
2 3 4
(1,2),
(1,3),
(1,4),
2 5 6
(1,2),
(1,5),
(1,6),

如您所见,我的程序不存在 while 循环。它仍然打印 i=1 的值。我做错了什么?

4

2 回答 2

1
int num = in2.nextInt(); 

之后尝试添加in2.nextLine();

笔记:

你不应该做new Scanner(System.in);多次。

Scanner in2 = new Scanner(System.in); // this is useless just use in
于 2012-11-15T06:06:11.447 回答
1

您的程序一直在等待新的提要,以终止它 - 您应该指示输入已结束(或提供非int输入)。

要指示提要已结束 - 您应该提供 EOF -ctrl+D在 linux 和ctrl+ZWindows 中。

于 2012-11-15T06:07:50.680 回答