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+DLinux とctrl+ZWindows にあります。

于 2012-11-15T06:07:50.680 に答える