没人回复啊,不过现在我已经明白了。给大家扩展一下哈:)
我在网上查了一下有关断言的知识,断言(assertion)是软件开发中常用的调试方式,它相当于Java中异常处理的一种高级形式。
语法格式有两种:
1、assert 表达式1;
2、assert 表达式1: 表达式2;
其中,表达式1的计算结果是一个boolean值,表达式2的计算结果是一个基本类型数据或是一个对象。
对于第一种语法格式,当程序运行到这一条断言语句时,表达式1的值将被计算,如果它的值为false,
该语句将抛出一个AssertionError对象,这是一个错误(Error)的子类,程序将终止;如果表达式的结果
的值为true,表示这个断言是正确的,程序可以继续往下执行。
对于第二种语法格式,如果表达式1的值为false,程序将表达式2的结果作为AssertionError构造器的
参数值创建一个AssertionError对象,并抛出该对象;如果表达式1的值为true,表达式2就不被计算,程序
继续往下执行。
运行时,要打开断言功能,javac -ea AssertTest。
所以选择题中的表达式1(x=1)不合法,应为(x==1)
我写了个程序测试了一下,
- /*断言使用测试*/
- public class AssertTest
- {
- public static void main(String[] args)
- {
- int[] arr=creatIntArray(1);
- }
- public static int[] creatIntArray(int x)
- {
- //assert(x=1):"x is "+x;//括号中的表达式应为布尔类型,所以编译失败
- assert(x==1):"x is "+x;//x为1时,不输出任何信息,x不为1时,传入值是3时,输出java.lang.AssertionError: x is 3;
- return new int[x];
- }
- }
复制代码 |