当前位置: 代码迷 >> J2SE >> 新人,循环的有关问题
  详细解决方案

新人,循环的有关问题

热度:366   发布时间:2016-04-23 19:54:57.0
新人求助,循环的问题
本帖最后由 zk_chs 于 2015-04-02 13:01:48 编辑
package com.imooc.collection;

import java.util.Scanner;

public class Test {

private static Scanner input = new Scanner(System.in);
public static void main(String[] args) {
// TODO Auto-generated method stub
while(true){
System.out.println("输入一个数字");
test();
}
}

private static void test(){
try{
int command;
command = input.nextInt();
System.out.println(command);
}catch(Exception e){
System.out.println("输入有误");
//  input = new Scanner(System.in);
}
}
}

上面的这些是我的代码,
这时候如果输入非数字就会无限报错
但是如果把catch中注释的内容加上就不会无限报错
请问在这里重新定义input是什么意思?
------解决思路----------------------
抱歉看错了,
input.nextInt()报错的时候,你输入的值其实还在 input里面,没有被取出来,所以无限循环的时候command看到input里面有值,不需要输入 再去取值但是还是报错,值还在里面。所以会死循环下去。把代码改成这样你就明白了
catch(Exception e){
String command;
command = input.next();
System.out.println(command);
//  input = new Scanner(System.in);
}
  相关解决方案