static int n(){
int k=0;
try{
k+=1;(1)
return 999;(2)
}
finally{
k+=1;(3)
}
}
public static void main(String[] args) {
System.out.println(n());
}
为什么将return 999;改为return k;执行顺序就变了呢?
当为return 999时,顺序为 (1)(3)(2)
当为return k时,顺序为(1)(2)(3)(2)
------解决方案--------------------------------------------------------
这个问题,板块里问了很多次了。
次序确实一直是先return。
只不过return k的时候,就把k付给了return。
所以finally即使k+=1了,return还是原来return没+1前的k。
------解决方案--------------------------------------------------------
http://www.ticmy.com/?p=56