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

為了賬號安全,請及時綁定郵箱和手機立即綁定

不是return過后就退出了嗎,finally可以繼續執行,那為什么finally之后的也能執行呢

public?int?test3(){
		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("循環拋出異常了!??!");
		}finally{
			System.out.println("這是finally?。?!哈哈?。?!");
			System.out.println("我是result,我的值是:"+result);
		}
		System.out.println("我是test3!我運行完了!表想我!~");
		return?1111;
	}


正在回答

2 回答

return的常用作用有以下兩種
一種是返回參數所用的關鍵字,假如一個有返回值的方法執行完了之后需要返回一個參數,示例:public string functionTest(){
? ? ? ? String a = "abc";
? ? ? ? return a;
}
那么這個方法被調用之后就會返回一個值為abc的字符串,string result = functionTest();

第二種用法是,代碼執行到此處終止。
比如當代碼執行到某個地方會出現幾種結果,然后其中一種結果就不能執行后續代碼,這時候在那里加上一個return就可以終止后面的代碼執行。

1 回復 有任何疑惑可以回復我~
#1

慕粉18817939419 提問者

請問下:我上面那段代碼中,(1)直接運行的話,輸出的是最后的return的1111的值。(2)如果我把try后面的return放到catch當中,然后返回的是catch當中的return的值,finally后面的輸出和return就沒用了。(3)try后面和catch后面都放return,是try當中的return沒運行還是被catch的return覆蓋了,和(1)是同樣的意思嗎?
2016-07-20 回復 有任何疑惑可以回復我~
#2

慕粉18817939419 提問者

是不是try當中的return只是單純的返回一個值,就是你說的第一種情況,放catch和方法最后就是你說的第二種情況。。。。。。。。
2016-07-20 回復 有任何疑惑可以回復我~
#3

慕粉18817939419 提問者

非常感謝
2016-07-20 回復 有任何疑惑可以回復我~
#4

慕粉18817939419 提問者

大概清楚了,catch里面執行是不是就和在方法里面執行一樣的意思,try里面執行的就相當于方法里面再有一個方法?所以return有這2種情況,try里面返回他里面方法的值,catch返回的就是所在這整個方法的值,然后終止了函數,但是都不會影響finally的運行。。。。是不是這樣的情況,可能說法不是很規范,我自己理解的方式。。。
2016-07-20 回復 有任何疑惑可以回復我~
#5

歐巴么么噠 回復 慕粉18817939419 提問者

try中的循環一旦發現異常,則直接去執行catch塊,而不會繼續執行循環后面的語句,所以try中的return不會執行。
2016-07-21 回復 有任何疑惑可以回復我~
#6

慕粉18817939419 提問者 回復 歐巴么么噠

原來如此,這下明白了,非常感謝
2016-07-21 回復 有任何疑惑可以回復我~
查看3條回復

Finally代碼塊的優先級比較高,不論TryCatch代碼塊如何運行,最后都要執行Finally代碼塊

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
Java入門第三季
  • 參與學習       409767    人
  • 解答問題       4543    個

Java中你必須懂得常用技能,不容錯過的精彩,快來加入吧

進入課程

不是return過后就退出了嗎,finally可以繼續執行,那為什么finally之后的也能執行呢

我要回答 關注問題
微信客服

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

幫助反饋 APP下載

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

公眾號

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