求指點一下第一個為啥會陷入無限循環,int k = input.nextInt();這個next函數為什么不能實現重新輸入?必須在循環里創建新對象才能正常返回
package com.Project4;
import java.util.InputMismatchException;
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
for(int i = 1;;){
try{
System.out.println("輸入命令:1-按照書名查書;2-按照序號查書");
int k = input.nextInt();
System.out.println("輸入完成");
break;
}catch(InputMismatchException e){
System.out.println("命令輸入錯誤!請根據指令輸入數字命令!");
}}}}
public class Test {
public static void main(String[] args) {
for(int i = 1;;){
Scanner input = new Scanner(System.in);
try{
System.out.println("輸入命令:1-按照書名查書;2-按照序號查書");
int k = input.nextInt();
System.out.println("輸入完成");
break;
}catch(InputMismatchException e){
System.out.println("命令輸入錯誤!請根據指令輸入數字命令!");
}}}}
2017-05-17
第一個nideScanner input = new Scanner(System.in);是在for循環外,當輸入一次后,input就有值了,for循環就相當于沒有任何條件一直執行,
第二個Scanner input = new Scanner(System.in);在里面,每次循環,必須有輸入一個值才能繼續執行
2017-05-17
你的for循環沒有退出,在catch中也加上break;