为什么我的程序没有退出while循环?

时间:2012-11-15 06:02:54

标签: java input while-loop java.util.scanner

代码:

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");
}

输入&amp;输出:

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),

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

2 个答案:

答案 0 :(得分:1)

int num = in2.nextInt(); 

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

注意:

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

Scanner in2 = new Scanner(System.in); // this is useless just use in

答案 1 :(得分:1)

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

要表明Feed已结束 - 您应该提供EOF - 在Linux中为ctrl+D,在Windows中为ctrl+Z