求翻译解释一下Java代码

publicclassTest{publicstaticStringoutput="";publicstaticvoidfoo(inti){try{if(i==1){th... public class Test{
public static String output=" ";

public static void foo(int i){
try{
if(i==1){
throw new Exception();
}
output+="1";
}catch(Exception e){
output+="2";
return;
}finally
output+="3";
}
output+="4";
}

public static void main(String[] args){
foo(0);
foo(1);
System.out.println(Test.output);
}
}
展开
 我来答
longlongzhuerr
推荐于2017-11-26 · TA获得超过324个赞
知道小有建树答主
回答量:243
采纳率:100%
帮助的人:247万
展开全部
public class Test{
public static String output=" ";

public static void foo(int i){
try{
if(i==1){
throw new Exception();//如果参数为1,抛出异常,进入到catch
}
output+="1";
}catch(Exception e){
output+="2";//如果参数为1,执行这里
return;
}finally{
output+="3";//不管怎样这里都要执行
}
output+="4";//这里是最后一个执行语句,抛出异常就不执行这里
}
public static void main(String[] args){
foo(0);//第一次调用
foo(1);//第二次调用
System.out.println(Test.output);
}
}
/*
 * 现在说下执行步骤:output的值我[]括起来
 * 第一次调用foo(0):(1)参数为0,所以执行output+="1",那么output现在为[ 1];
 *      (2)执行到output+="3",那么output现在为[ 13];
 *      (3)执行到output+="4";那么output现在为[ 134]
 * 第二次调用foo(1):(1)执行if里面,抛出异常
 *      (2)进入到catch,执行output+="2",output现在为[ 1342]
 *      (3)进入finally,执行output+="3", output现在为[ 13423]
 */
追问
也就是说
第二次调用foo(1):执行if里面,抛出异常后直接进入catch,后面的output+="1";不会被执行,对吗?

还有,catch里的return;的作用是什么?
追答
意思是这个函数执行完毕,应该返回了。但是好像是要finally执行后返回。
q2213502
2014-04-08
知道答主
回答量:26
采纳率:0%
帮助的人:22.1万
展开全部
答案是: 134234 首先java代码运行后,main函数是入口, 先执行foo(0) 这句代码,
然后 try执行完,output="1",然后执行finally output="13" 接着 output="134" 然后执行foo(1),在try里面抛出异常 执行catch里面的语句 output="1342" try catch 语句中finally 肯定执行 所以output="13423"然后执行output+="4"; 所以output="134234" 最后输出
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
政love068
2014-04-08
知道答主
回答量:51
采纳率:0%
帮助的人:17.6万
展开全部
public class考试{
publicstatic字符串输出= ";”;;
public static void foo(I){
试试看。
如果(I= = 1){
把新的exception();
}
输出+ =“1”;;
} catch(异常){
输出+ =“2”;;
返回;
}最后
输出+ =“3”;;
}
输出+ =“4”;;
}
public static void main(字符串[ ] args){
Foo(0);
Foo(1);
System.out。println(测试。输出);
}
}
追问
解释一下代码的意思。。。。。。。
不是翻译,不是英译汉。。。。。。
追答
自己把代码复制到Java运行下看下结果不就明白了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
德艺双馨520920
2014-04-08 · TA获得超过653个赞
知道小有建树答主
回答量:798
采纳率:92%
帮助的人:291万
展开全部
您好,提问者:
因为output 是static,共享区域,是字符串类型,不会进行算数运算。
结果输出:134234
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式