在Java的常见异常中,有一个异常是“java.lang.ArithmeticException:/byzero”。想必大家都见过吧,在除数为0时就会抛出这个异常了。
只要是除数为0就会抛出“java.lang.ArithmeticException:/byzero”这个异常吗?
如果我说不是,你相信吗?
来看下面的代码。
大家觉得上面这段代码执行的结果会是什么?
抛出异常么?还是其他的什么?
我来执行一下,贴上执行结果。
输出了“Infinity”。表示无穷大。
其实除数为0,在整数类型(比如int,long等)运算时,还有BigDecimal,会抛出“java.lang.ArithmeticException:/byzero”这个异常。
如果是double类型,float类型的运算时,就不会抛出异常了,而是得到无穷大这样的结果。被除数是正数,结果就是正无穷大,被除数是负数,结果就是负无穷大。
这个如果学过高数的同学,可能就直接明白了。
如果没有学过,我举个例子,大概说说。
比如被除数是,除数是,执行除法运算后,结果是1。
被除数还是,除数变小,变成50,执行除法运算,结果会变大,变成2。
被除数不变,除数继续变小,变成25,执行除法的结果就会继续变大,变成了4。
被除数还是不变,除数变小到1,执行除法运算后,结果就变成了。
也就是随着除数的越变越小,除法的结果就会越变越大。
是不是明白点了呢。