求指點(diǎn)一下第一個(gè)為啥會(huì)陷入無限循環(huán),int k = input.nextInt();這個(gè)next函數(shù)為什么不能實(shí)現(xiàn)重新輸入?必須在循環(huán)里創(chuàng)建新對象才能正常返回
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("命令輸入錯(cuò)誤!請根據(jù)指令輸入數(shù)字命令!");
}}}}
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("命令輸入錯(cuò)誤!請根據(jù)指令輸入數(shù)字命令!");
}}}}
2017-05-17
第一個(gè)nideScanner input = new Scanner(System.in);是在for循環(huán)外,當(dāng)輸入一次后,input就有值了,for循環(huán)就相當(dāng)于沒有任何條件一直執(zhí)行,
第二個(gè)Scanner input = new Scanner(System.in);在里面,每次循環(huán),必須有輸入一個(gè)值才能繼續(xù)執(zhí)行
2017-05-17
你的for循環(huán)沒有退出,在catch中也加上break;