
求下面程序的运行结果求下面程序的运行结果谢求下面程序的运行结果谢谢
程序运行的结果为17。
测试代码如下:
public class Testtrycatchfinally {
public static int test(int a,int b) {
int id=0;
try {
// 第一次调用test,id+=1执行完,id=1
// 第二次调用test,发生除0运算,id+=1不执行
a=a/b;
id+=1;
System.out.println("a="+a+", b="+b+", id="+id);
}catch(Exception e) {
// 第二次调用test,执行a=a/b,发生异常,跳转到catch,执行id+=2,id=2
id+=2;
System.out.println("a="+a+", b="+b+", id="+id);
}finally {
// 第一次调用test,id+=3执行完,id=4
// 第二次调用test,id+=3执行完,id=5
id+=3;
System.out.println("a="+a+", b="+b+", id="+id);
}
// 第一次调用test,id+=4执行完,id=8
// 第二次调用test,id+=4执行完,id=9
id+=4;
System.out.println("a="+a+", b="+b+", id="+id);
return id;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
// 下面行执行完,x为第一次调用test()的返回结果,其值为8
int x = test(0,1);
System.out.println("x="+x);
// 下面这行执行完,x累加第二次调用test()的返回结果,其值为9
// 所以最后x=8+9=17
x+=test(1,0);
// 最后的打印结果为17
System.out.println(x);
}
}
