第三题
问:x=x+1,x+=1及x++的效率哪个最高?为什么?
解析:
x=x+1最低,因为它的执行如下。
(1)读取右x的地址;
(2) x+1;
(3) 读取左x的地址;
(4) 将右值传给左边的x(编译器并不认为左右x的地址相同)。
x+=1 其次,它的执行如下。
(1)读取右x的地址;
(2) x+1;
(3)将得到的值传给x(因为x的地址已经读出)。
x++最高,它的执行如下。
(1)读取右x的地址;
(2)x自增1。
答案:x++效率最高。
第四题
参照如下代码,1,2,3,4中哪个表达式是不正确的?
public class Qus4 {
public static void main(String[] args) {
int i, j, k;
i = 100;
while (i > 0) { // 1
j = i * 2; // 2
System.out.println("The value of j is" + j);
k = k + 1; // 3
i--; // 4
}
}
}
解析:k-k+1不对,因为k没有初定义。