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

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

TryCatch語句中兩個類似方法名出現不同的結果......?

TryCatch語句中兩個類似方法名出現不同的結果......?

慕的地0971735 2016-05-14 23:02:24
public int test3(){ int divider=10; int result=100; try{ while(divider>-1){ divider--; result=result+100/divider; } } catch(Exception e){ e.printStackTrace(); System.out.println("程序拋出異常啦!??!"); } finally{ System.out.println("這是finally??!哈哈??!");System.out.println("我是result!我的值是:"+result); ? ?這一句輸出是 ? ?我是result!我的值是:381; } System.out.println("我是test3()我運行完了!表想我。。"); return 1111;}}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("程序拋出異常了??!"); return result=999; } finally{ System.out.println("這是finally!!哈哈!!"); System.out.println("我是result!我的值是:"+result); ? ?這一句的輸出是999,怎么回事??? }
查看完整描述

1 回答

已采納
?
一切都是算計

TA貢獻16條經驗 獲得超10個贊

程序出現異常了 ?, 因為 執行了divider-- ? ,所以divider每次遞減1 ;當divider=0時,result=result+ 100/divider中的100/divider就是100/0,0不能作為除數,所以會產生一個除數為0的異常,catch捕獲了這一異常,執行return result=999;將result賦值為999,所以最后輸出999

查看完整回答
反對 回復 2016-05-14
  • 慕的地0971735
    慕的地0971735
    那為什么在 public int test3()中有輸出是 我是result!我的值是381 呢?
  • 一切都是算計
    一切都是算計
    因為你前面catch語句沒有執行為result賦值 ,所以當divider=0時,程序捕獲異常就把 result的當前值輸出了。 你看你的while循環 while(divider>-1){ divider--; result=result+100/divider; } 執行result=result + 100/divider,divider從10一直到1,每次都賦值給了result,最后divider=1時,result=281+100/1 ;所以result=381
  • 1 回答
  • 0 關注
  • 1367 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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