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("命令输入错误!请根据指令输入数字命令!");
}}}}
第一个nideScanner input = new Scanner(System.in);是在for循环外,当输入一次后,input就有值了,for循环就相当于没有任何条件一直执行,
第二个Scanner input = new Scanner(System.in);在里面,每次循环,必须有输入一个值才能继续执行
你的for循环没有退出,在catch中也加上break;