在本文中,我做了一个趣味探讨:运算中除数为0时,系统返回结果。
1)0/0
编译不报错,运行时系统报异常。
at Test1.main(Test1.java:5)
2)1/0(整数/0)
编译不报错,运行时系统报异常。
at Test2.main(Test2.java:5)
3)1.0/0 (浮点数/0)
编译不报错,能正常运行,返回结果:Infinity(无穷大)。
4)-1.0/0
编译不报错,能正常运行,返回结果:-Infinity(无穷大)。
5)'a'/0(Unicode码表示字符/0)
编译不报错,运行时系统报异常。
7)true/0(boolean常量/0)
编译报错。
编译不报错,能正常运行,返回结果:Nan(不是一个数字)。
1)0/0
编译不报错,运行时系统报异常。
图1
系统会报异常:Exception in thread "main" java.lang.ArithmeticException: / by zero
at Test1.main(Test1.java:5)
2)1/0(整数/0)
编译不报错,运行时系统报异常。
图2
系统会报异常:Exception in thread "main" java.lang.ArithmeticException: / by zero
at Test2.main(Test2.java:5)
3)1.0/0 (浮点数/0)
编译不报错,能正常运行,返回结果:Infinity(无穷大)。
图3
4)-1.0/0
编译不报错,能正常运行,返回结果:-Infinity(无穷大)。
图4
5)'a'/0(Unicode码表示字符/0)
编译不报错,运行时系统报异常。
图5
系统会报异常:Exception in thread "main" java.lang.ArithmeticException: / by zero
at Test5.main(Test1.java:5)
6)"a"/0(字符串常量/0)
编译报错。
图6
7)true/0(boolean常量/0)
编译报错。
图7
8)0.0/0(浮点数零/0)
编译不报错,能正常运行,返回结果:Nan(不是一个数字)。
图8
总结:
整数和字符常量被0除将会产生一个异常,浮点数被0除将会得到无穷大或者Nan,boolean类型常量和字符串常量被0除编译时系统会报错。
好了,探讨完了,你们觉得除数为0时系统还会有哪些奇异现象,欢迎留言。