package old_li;
import java.util.*;
public class Test1 {
public static void main(String args[])
{
Scanner in=new Scanner(System.in);
int[] a;
a=new int[3];
System.out.println("请输入a");
try{
for(int i=0;i<3;i++)
a[i]=in.nextInt();//如果在此输入的是字符串,为什么下面的a[i]就不让输入了?会自动报错
}
catch(InputMismatchException e)
{   
System.out.println("输入错误,请输入整数");

}

/*for(int i=0;i<3;i++)
System.out.println(a[i]);*/
System.out.println("请输入A");
for(int i=0;i<3;i++)
a[i]=in.nextInt();//这里不会再让输入
for(int i=0;i<3;i++)
System.out.println(a[i]);
} }

解决方案 »

  1.   

    a[i]=in.nextInt();
    在这里输入一个String字符串,然后出异常,catch后执行
    catch(InputMismatchException e)

    System.out.println("输入错误,请输入整数");} 
    输出一句话,程序退出,下面的程序当然是不执行了
      

  2.   

    因为a[i]=in.nextInt();是读入一个Int型的数据,你输入字符串当然不对了
      

  3.   

    刚刚和同学调试出来,是存入缓存的nextint还在,只要写一条next()吃掉缓存就好了。还是谢谢各位了
      

  4.   

    因为你定义的a 为int[] a; 只能接受整数,你输入字符,肯定是不行的啦·
      

  5.   

    建议读之前判断 in.hasNextInt()看合法不
    不合法就吃掉后跳过过滤掉