JAVA 关于断言的一道题
发布网友
发布时间:2022-04-23 10:02
我来回答
共1个回答
热心网友
时间:2023-10-10 15:53
assert不过是系统提供的一个函数,而if则是关键字。
其次,两个的语法也不一样,你可以写if( 1 ){}但是写个assert(1){}却不对,当然,这个区别是第一点造成的
在语义上,if就不用解释了吧。assert的语义如下:在debug编译模式下,如果assert的表达式求值为false,就会中断程序;在release模式下,则没有任何操作。因此可以说,assert就是在调试模式下用来确保制定条件被满足的一种手法,比如说,你想确保x>0,你就可以写assert( x > 0 );如果在运行过程中,x<=0了,代码就会中断,利用调试器很容易发现问题所在。
因为你的程序中x=0所以assert (x > 0): "assertion failed";
这句话是成立的,所以程序不会中断则继续向下执行,所以输出finished
明白了?