下面的程序代码输出的结果是多少


public class  smallT

{

public staticvoid  main(String args[])

{

smallT t  = new smallT();

int  b =  t.get();

System.out.println(b);

}

 

public int  get()

{

try

{

return1 ;

}

finally

{

return2 ;

}

}

}

 

返回的结果是2。

我可以通过下面一个例子程序来帮助我解释这个答案,从下面例子的运行结果中可以发现,try中的return语句调用的函数先于finally中调用的函数执行,也就是说return语句先执行,finally语句后执行,所以,返回的结果是2。Return并不是让函数马上返回,而是return语句执行后,将把返回结果放置进函数栈中,此时函数并不是马上返回,它要执行finally语句后才真正开始返回。

在讲解答案时可以用下面的程序来帮助分析:

public classTest {

 

/**

* @paramargs add by zxx ,Dec 9, 2008

*/

public static voidmain(String[] args) {

// TODO Auto-generated method stub

System.out.println(newTest().test());;

}

 

int test()

{

try

{

return func1();

}

finally

{

return func2();

}

}

 

int func1()

{

System.out.println(“func1”);

return 1;

}

int func2()

{

System.out.println(“func2”);

return 2;

}

}

———–执行结果—————–

func1

func2

2

结论:finally中的代码比return和break语句后执行

免责声明:该资源版权归原作者所有,本站只是负责搜集和整理,本站不承担任何技术及版权问题。在本站下载该资源仅提供学习参考和研究,不得用于商业用途,否则一切后果请用户自负。请在下载后在24小时内删除,一切关于该资源商业行为与学士资源网无关。本站也不承担用户因使用这些下载资源对自己和他人造成任何形式的损失或伤害。如有侵权、不妥之处,请联系站长以便及时删除,敬请谅解!侵权/投稿邮箱:zhuanyexueshi@163.com
学士资源网 » 下面的程序代码输出的结果是多少

发表评论

学士资源网为大家提供最优质的资源集合

联系学士 资源Q群
嘿,我来帮您!