Given:
23.int z=5;
24.
25. public void stuff1(int x) {
26. assert (x> 0);
27. switch(x) {
28. case 2: x= 3;
29. default: assert false; } }
30.
31. private void stuff2(int y) { assert (y < 0); }
32.
33. private void stuff3() { assert (stuff4O); }
34.
35. private boolean stuff4() { z = 6; return false; }
Which is true?
A. All of the assert statements are used appropriately.
B. Only the assert statement on line 31 is used appropriately.
C. The assert statements on lines 29 and 31 are used appropriately.
D. The assert statements on lines 26 and 29 are used appropriately.
E. The assert statements on lines 29 and 33 are used appropriately.
F. The assert statements on lines 29, 31, and 33 are used
appropriately.
G. The assert statements on lines 26, 29, and 31 are used
appropriately.这题应该选什么?我感觉很乱,恰当怎么判断?
23.int z=5;
24.
25. public void stuff1(int x) {
26. assert (x> 0);
27. switch(x) {
28. case 2: x= 3;
29. default: assert false; } }
30.
31. private void stuff2(int y) { assert (y < 0); }
32.
33. private void stuff3() { assert (stuff4O); }
34.
35. private boolean stuff4() { z = 6; return false; }
Which is true?
A. All of the assert statements are used appropriately.
B. Only the assert statement on line 31 is used appropriately.
C. The assert statements on lines 29 and 31 are used appropriately.
D. The assert statements on lines 26 and 29 are used appropriately.
E. The assert statements on lines 29 and 33 are used appropriately.
F. The assert statements on lines 29, 31, and 33 are used
appropriately.
G. The assert statements on lines 26, 29, and 31 are used
appropriately.这题应该选什么?我感觉很乱,恰当怎么判断?
29嘛 assert false; 都false了还assert做什么 呵呵
其他还算合理吧
所以:
26. assert (x> 0);
-------------------
x的大小如果小于0,那么还要下面的switch语句做什么?所以,显得多余!!
29. default: assert false; } }
-----------------
这一句主要检验switch语句在没有使用break时,是否会继续向后执行(此处只有default)!可想而知,在这里是一定会报错的。那么说明default被执行!!!
31. private void stuff2(int y) { assert (y < 0); }
---------------------------
如果y>0,那就会抛出异常,否则不抛!这样做的目的是方便调试者能够判断y的值是大于0还是小于0!
33. private void stuff3() { assert (stuff4O); }
--------------------
这应该是assert (stuff4()); 吧??再看看“35. private boolean stuff4() { z = 6; return false; } ”这一行,这不管怎么调用,都是返回false,而stuff3的函数体中就莫名其妙地抛出一个断言异常,你能从这样的一个断言异常中判断出某一个东西的值或状态吗??基本上是做无用功!!所以在这个程序中29,31用的恰当!!