2301_76553977 2023-05-15 13:22 采纳率: 100%
浏览 26
已结题

求下面程序的运行结果

img


求下面程序的运行结果求下面程序的运行结果谢求下面程序的运行结果谢谢

  • 写回答

2条回答 默认 最新

  • a5156520 2023-05-15 13:31
    关注

    程序运行的结果为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);
        }
    
    }
    
    

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 5月23日
  • 已采纳回答 5月15日
  • 创建了问题 5月15日