本人的答题,正好复制上来
解题:因为return语句在返回值的同时会结束该方法,所以在try和finally中都加入return语句,根据返 回值来判断执行顺序。
附:经测试,判断finnaly语句先执行,这里因为我在finnally加入return语句结束该try方法,所以try中retrun并没有返回数值,当finally中只有x++语句时,返回值为2,并不是为3,也就是说x++的值并没有赋给x+2语句中的x,我的理解是,当try语句执行到return时,已经确定了返回值0+2,也就是说该return语句已经完成x+2语句的操作后被finally抢去执行权,这时候x++已经影响不到return语句的返回值。
*/
class Test
{
public static void main(String[] args)
{
System.out.println(judge());
}
public static int judge()
{
int x = 0;
try
{
return x+2;
}
finally
{
return x++;
}
}
} |