所以代码的执行顺序是这样的, int i =1; ++i , i 等于2, return, 由于finally .. 执行下去, i = 3, 这是第1个打印,
然后c的值是因为第一次++i 的时候被return 这时候 i 等于=2... 于是打印出第2个值 c = 2;
作者: 李润根 时间: 2013-1-14 19:01
public class Test
{
public static void main(String[] args)
{
int c = fun();//此时c已经是2,由于被调用函数还没有执行完,所以没有执行下条语句打印
System.out.println("c="+c);//被调用函数执行完,执行这条语句
}
public static int fun()
{
int i = 1;
try
{
return ++i;//先执行这条语句,运行到这里i已经是2,并且返回给调用函数
}finally
{
++i;
System.out.println("i="+i);//这里i是3,并且打印
}
}//被调用函数,执行完
} 作者: 何伟 时间: 2013-1-14 22:26