亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

為什么我代碼執行的順序和慕課網老師的不一樣,明明是照著打的,要怎么改呢?

為什么我代碼執行的順序和慕課網老師的不一樣,明明是照著打的,要怎么改呢?

溯源1 2017-11-10 17:02:09
package Exception;public class Finally { public static void main(String[] args) { // TODO Auto-generated method stub Finally tct=new Finally(); int result=tct.test(); System.out.println("test()方法,執行完畢!返回值為:"+result); int result2=tct.test2(); System.out.println("我想大聲告訴你!test2()2執行完畢!!~"); } public int test() { int divider=10; int result=100; try { while(divider>-1) { divider--; result=result+100/divider; } return result; }catch(Exception e) { e.printStackTrace(); System.out.println("circulation throw exception!!!"); return -1; } } public int test2() { int divider=10; int result=100; try { while(divider>-1) { divider--; result=result+100/divider; } return result; }catch(Exception e) { e.printStackTrace(); System.out.println("circulation throw exception!!!"); return result=999; }finally { System.out.println("這是finally!!哈哈??!"); System.out.println("這是Result!!我的值是:"+result); } } }
查看完整描述

2 回答

?
慕容7724642

TA貢獻14條經驗 獲得超4個贊

沒毛病啊,把錯誤打印出來了。

查看完整回答
反對 回復 2017-11-12
?
木偶匹諾曹

TA貢獻3條經驗 獲得超1個贊

請問哪個是老師的運行結果呢?我的運行結果是這樣的http://img1.sycdn.imooc.com//5a05cbc000011cc010500380.jpg

它是運行到divider=0之后會報第一個錯誤,然后跳出循環,輸出第一個提示之后循環結束,再執行int int result2=tct.test2();,循環執行后再報第二個錯,最后執行finally。finally里面的東西永遠是最后執行的。因為你的finally后面沒有再執行的了,所以直接從tct.test2()跳出后就直接執行后面的輸出語句,然后結束了。所以那個報錯應該不會在程序執行完之后還會報錯的。

以上是我分析的。但是我在不斷重復執行這個程序的時候它報錯的位置也會有變化,所以我不清楚這個是否還有其他原因。

查看完整回答
反對 回復 2017-11-11
  • 2 回答
  • 0 關注
  • 1339 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號