知识点
1. 异常处理逻辑
异常出现之前的代码都是执行的,异常出现之后的代码是不执行的。
int getDivision(int n) {
try{
n+=1; // 执行n=n+1,n=11,出现异常之前的代码都是执行的
if (n/0 > 0) { // 0不能作为除数,出现异常
n+=10;
} else {
n-=10;
}
} catch (Exception ex){
n++; // 执行n=n+1, n=12
}
n++; // 执行n=n+1, n=13
return n++; // 先赋值,后计算,返回n=13
}
调用:getDivision(10);
结果:13;
备注:n++是先赋值后计算;++n(同n+=1)是先运算后赋值
2. n++ ++n赋值和计算顺序
++n <==> n自增1,值为新的n本身,是左值。
n++ <==> n自增1,返回原来的n的值,是右值。
例:
b=1; a = b++; // b = 2, a = 1 相当于 a=b; ++b;
b=1; a = ++b; // b = 2, a = 2 相当于 ++b; a=b;
b=1; b++ = a; // error 相当于 ++b; 1=a;
b=1; ++b = a; // b=a; 相当于 ++b; b=a;
b++ 会多出一个临时对象,返回原本的值。