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)
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)
解决方案 »
- 关于JDBC的疑惑(想了很多天了都想不明白)???
- Random()的范围问题
- 新手关于String的一个小问题
- 麻烦帮小弟看一下
- 连接数据库问题
- 十万火急请教高人带我一下,我是java初学者,真的是十万火急
- 请教一个郁闷的问题,急。抛出异常-NullPointerException,求解。
- 如何区分oracle里的number型和float型?急!!!
- 在Applet中如何阶梯状图表呢?(数据从数据库从采样)
- 关于调用import com.borland.jbcl.layout.*;,的问题,高手帮忙
- 求实现JTextPane/JEditorPane撤销回复功能的代码,最好功能强点的,先谢了
- 请问如何使一个组件跟着鼠标箭头走啊?
次序确实一直是先return。只不过return k的时候,就把k付给了return。
所以finally即使k+=1了,return还是原来return没+1前的k。
我来顶一下3楼的哥们,建议楼主把3楼的Blog都认真看一看。