问答详情
源自:1-3 Java中通过案例学习 try...catch...finally

不明白,为什么输入a值为整数值,也会报异常?求指教啊

package test.Exception;
/*异常抛出及处理:try  catch  finally
 *
 */
import java.util.*;
public class Exception_Test1 {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Exception_Test1 Test =new Exception_Test1();
        int result =Test.test();
        System.out.println("test()方法执行了,结果为:"+result);
        

    }
    public int test(){
        Scanner input =new Scanner(System.in);
        try{
            int b =100;
            System.out.println("请输入a的值");
            int a =input.nextInt();
            while(a >-1){
                b = a+b/a;
                a--;      
            }
            return b;
        }catch(Exception e){
            e.printStackTrace();
            System.out.println("异常报出,a应该为整数值");
            return 0;
        }
        
    }

}

提问者:ygKan 2019-04-27 22:43

个回答

  • tiger爱小狄
    2019-04-28 10:51:03
    已采纳

     while(a >-1){
                    b = a+b/a;
                    a--;      
                }

    这个循环,只要a>-1就循环,a--,那么不论你输入啥,总会走到a=0的时候,0不能作为分母啊,会导致 b = a+b/a;

    b无穷大,肯定报异常了啊,你可以把判断条件改成 a>0