应该在try{}catch{}中抛出NumberFormatException异常

解决方案 »

  1.   

    如果你不记得那些类的方法调用会抛出什么异常,保险的方法就是catch(Exception),不指定就是catch所有exception啦
      

  2.   

    首先循环条件错了,应该是a!='y'&&a!='Y'
    其次由于System.in.read()方法并不是输入个字符它就返回的,需要回车,所以如果按照你的方法就成了空串,改成br.readLine()方法这样就可以过滤掉回车。
    char a='n';
    while(a!='y'&&a!='Y')
    {
    float num[]=new  float[3];
    int i;
    BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
    System.out.print("请输入三门课程的成绩:");
    for(i=0;i<num.length;i++)
    num[i]=Float.valueOf(br.readLine()).floatValue();
    float ave;
    ave=(num[0]+num[1]+num[2])/3;
    System.out.println("平均成绩:"+ave);
    System.out.print("退出否?");
    a=(char)br.readLine().charAt(0);
    }
      

  3.   

    num[i]=Float.valueOf(br.readLine()).floatValue();
    是这一行可能引起异常,传给valueOf的字符串不是浮点数格式时就会跑出异常