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

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

if/for/while中的“缺失返回語句”

if/for/while中的“缺失返回語句”

呼如林 2019-06-23 14:55:52
if/for/while中的“缺失返回語句”我有一個關于返回語句的問題if() while()或for()陳述。正如您在下面的方法中所看到的,它期望我return字符串值。問題是如果我用return語句在我的if語句塊時,編譯器將返回錯誤。missing return statement.public String myMethod(){     if(condition)     {        return x;     }}當然,我可以將方法頭更改為void和使用System.out.println而不是return..但這樣做對嗎?我是不是遺漏了什么?任何幫助都是非常感謝的。
查看完整描述

3 回答

?
弒天下

TA貢獻1818條經驗 獲得超8個贊

如果您將返回語句放入ifwhilefor語句,則它可能返回值,也可能不返回值。如果它不會進入這些語句中,那么該方法也應該返回一些值(可能為NULL)。為了確保這一點,編譯器將強制您編寫后面的返回語句。ifwhilefor.

但如果你寫if / else塊,并且它們中的每一個都有返回,然后編譯器知道ifelse將得到執行,而方法將返回一個值。所以這次編譯器不會強迫你。

if(condition){
 return;}else{
 return;}


查看完整回答
反對 回復 2019-06-23
?
白板的微信

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

那是因為函數需要返回值。想象一下如果你執行myMethod()它不會進入if(condition)您的函數會返回什么?編譯器需要知道在函數的每一個可能的執行中返回什么。

檢查Java文檔:

定義:如果一個方法聲明有一個返回類型,那么在方法的末尾必須有一個返回語句。如果返回語句不存在,則拋出丟失的返回語句錯誤。

如果方法沒有返回類型,并且沒有使用void聲明(即錯誤地省略了它),也會引發此錯誤。

你可以做些什么來解決你的問題:

public String myMethod(){
    String result = null;
    if(condition)
    {
       result = x;
    }
    return result;}


查看完整回答
反對 回復 2019-06-23
?
慕標琳琳

TA貢獻1830條經驗 獲得超9個贊

試著,好像if condition返回false,因此它將返回空的,否則不會返回任何內容。

public String myMethod(){
    if(condition)
    {
       return x;
    }return ""}

因為編譯器不知道這些if塊是否會到達,所以它給了您一個錯誤。


查看完整回答
反對 回復 2019-06-23
  • 3 回答
  • 0 關注
  • 554 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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