亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

java中的return關(guān)鍵字使用解讀

 更新時間:2023年08月01日 15:53:20   作者:SSS4362  
這篇文章主要介紹了java中的return關(guān)鍵字使用方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

return的作用

a.返回方法的返回值(運行結(jié)果)

具體表現(xiàn): 返回不被void關(guān)鍵字修飾的方法的返回值

語法: return 返回值;

注意:返回值類型需要與方法名前面的數(shù)據(jù)類型保持一致

示例代碼如下:

import java.util.Scanner;
public class Practice {
    public static void main(String[] args) {
        int year=2020;
        if(isLeapYear(year)){
            System.out.println(year+"是閏年");
        }else{
            System.out.println(year+"是平年");
        }
    }
    //在isLeapYear是返回實參傳過來的年是否是閏年的結(jié)果,若是,則返回true,否則返回false
    public static  boolean isLeapYear(int year){
        if(year%400==0||(year%4==0&&year%100!=0)){
            return true;
        }
        return false;
    }
}

示例代碼截圖如下所示:

b.結(jié)束當前方法

語法為: return;

必須要在方法體里頭書寫才會生效

示例代碼如下所示:

public class Practice {
    public static void main(String[] args) {
        //當輸入第10句堅持就是勝利時,就結(jié)束這個程序
        // 此時我們可以在main方法里面使用return關(guān)鍵字
        int i=0;
       while(true){
           System.out.println("堅持就是勝利"+(++i));
           if(i==10){
               System.out.println("此時程序結(jié)束!!!");
               return;
           }
       }
    }
}

示例代碼截圖如下所示

return關(guān)鍵字常見問題

編譯器如何判定非void修飾的方法的返回值是否合理???

1.核心判斷依據(jù)

任意情況下該方法都有返回值,

2.例如如下所示代碼

是會運行成功,還是會報錯呢?

public class Practice {
    public static void main(String[] args) {
        System.out.println(test());
    }
    public static int test(){
        boolean flag=true;
        if(flag){
            return 1;
        }
    }
}

解答:在idea中編譯通過不了,提示Missing return statement(沒有返回語句)

原因如下:

  • 編譯器不知道flag的值,也就是說if語句在編譯器眼中是可能運行也可能不運行
  • 也就是說可能會有返回值,可能也沒有返回值。
  • 因此不符合任何條件下都有返回值這個要求,因此就會提示沒有返回語句

3.那么如何解決這個問題呢?

3.1 第一種,{}里面(循環(huán)、分支啥的)的內(nèi)容用變量去進行接收,然后返回變量的值

語法

public static 變量數(shù)據(jù)類型 test(){
  變量數(shù)據(jù)類型 變量名=默認值;
  boolean flag=true;
  if(flag){
    變量名=特定值;
  }
  return 變量名;  
}

對之前的錯誤代碼進行改進的結(jié)果如下所示:

public class Practice {
    public static void main(String[] args) {
        System.out.println(test());
    }
    public static int test(){
        int result=55;
        //定義一個變量來接收返回的結(jié)果
        boolean flag=true;
        if(flag){
            result=100;
        }
        return result;
    }
}

3.2 第二種,{}里面和外面都有返回值

public static 變量數(shù)據(jù)類型 test(){
  boolean flag=true;
  if(flag){
   return 數(shù)值1;
  }
  return 數(shù)值2;  
  //數(shù)值1和數(shù)值2的數(shù)據(jù)類型應(yīng)與變量數(shù)據(jù)類型保持一致
}

對之前的錯誤代碼進行改進的結(jié)果如下所示:

public class Practice {
    public static void main(String[] args) {
        System.out.println(test());
    }
    public static int test(){
        //if里面外面均有返回值,此時編譯器就不用擔(dān)心有可能無返回值的情況了
        boolean flag=true;
        if(flag){
           return 100;
        }
        return 55;
    }
}

return后面是否可以寫其他語句???

分析

當return的作用為返回方法的運行結(jié)果時

以下代碼是否會報錯?

public class Practice {
    public static void main(String[] args) {
        System.out.println(test());
    }
    public static int test(){
        return 66;
        System.out.println("查看是否報錯");
    }
}
//此題會報錯

答:

會報錯,因為按照正常來說當return所在語句運行完成后,意味著該次方法調(diào)用語句完成,而return后面的語句壓根就沒有執(zhí)行的可能。

因此在編譯器編譯的過程中,會報錯,報錯提示你應(yīng)該把不可訪問(多余)的語句給去掉。

當return的作用為結(jié)束當前方法時

以下代碼是否會報錯

public class Practice {
    public static void main(String[] args) {
        System.out.println("專注能有效提高做事效率!!!");
        return;
        System.out.println("科學(xué)表明");
    }
}

答:

會報錯,因為按照正常來說使用return關(guān)鍵字結(jié)束當前方法后,意味著該方法(緊鄰著的)后面的語句不可能有機會去運行,因此編譯器會給出錯誤提示Unreachable statement(不可訪問的語句),因此此時return后面也不能寫其他語句。

總結(jié)

無論是返回方法的運行結(jié)果還是結(jié)束當前方法,后面均不可以寫其他語句

return所在語句后面不可以寫其他語句。(其他語句和return在同一個{}里面的情況)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java的string類為什么是不可變的

    Java的string類為什么是不可變的

    這篇文章主要介紹了Java的string類為什么是不可變的,總結(jié)了三個答案,需要的朋友可以參考下
    2014-04-04
  • maven加入spring框架的詳細教程

    maven加入spring框架的詳細教程

    這篇文章主要介紹了maven加入spring框架的詳細教程,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-10-10
  • RestTemplate報錯400 Bad Request的解決方案

    RestTemplate報錯400 Bad Request的解決方案

    在使用Spring Boot時,若直接通過@Autowired注入RestTemplate可能會遇到400BadRequest錯誤,原因在于Spring Boot官方文檔指出,由于RestTemplate實例通常需要在使用前進行定制,因此Spring Boot不會自動配置單個RestTemplate Bean
    2024-11-11
  • Spring中的@ResponseStatus使用

    Spring中的@ResponseStatus使用

    這篇文章主要介紹了Spring中的@ResponseStatus使用,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • Java實現(xiàn)解析JSON大文件JsonReader工具詳解

    Java實現(xiàn)解析JSON大文件JsonReader工具詳解

    這篇文章主要介紹了Java實現(xiàn)解析JSON大文件的工具JsonReader使用方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧
    2023-01-01
  • 利用Java實現(xiàn)天氣預(yù)報播報功能

    利用Java實現(xiàn)天氣預(yù)報播報功能

    這篇文章主要為大家介紹了如何利用Java語言實現(xiàn)天氣預(yù)報播報功能,文中的示例代碼講解詳細,對我們學(xué)習(xí)Java有一定的幫助,需要的可以參考一下
    2022-06-06
  • IDEA必備開發(fā)神器之EasyCode

    IDEA必備開發(fā)神器之EasyCode

    對于java程序員來說,日常工作中就是crud的操作,每次都要搭建MVC三層,還是很繁瑣,這里就出現(xiàn)了神器easycode的工具.可以快速生成代碼.并且還可以自定義模板.需要的朋友可以參考下
    2021-05-05
  • springboot2.3之后hibernate-validator依賴缺失【踩坑】

    springboot2.3之后hibernate-validator依賴缺失【踩坑】

    這篇文章主要介紹了springboot2.3之后hibernate-validator依賴缺失【踩坑】,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • Java中的深拷貝和淺拷貝介紹

    Java中的深拷貝和淺拷貝介紹

    對象拷貝(Object Copy)就是將一個對象的屬性拷貝到另一個有著相同類類型的對象中去。在程序中拷貝對象是很常見的,主要是為了在新的上下文環(huán)境中復(fù)用對象的部分或全部 數(shù)據(jù)。Java中有三種類型的對象拷貝:淺拷貝(Shallow Copy)、深拷貝(Deep Copy)、延遲拷貝(Lazy Copy)
    2014-03-03
  • GraalVM?native-image編譯后quarkus的超音速啟動

    GraalVM?native-image編譯后quarkus的超音速啟動

    這篇文章主要介紹了經(jīng)過GraalVM?native-image編譯后的quarkus,來帶大家驗證一下號稱超音速亞原子的quarkus是否名副其實,有需要的朋友可以借鑒參考下,希望能夠有所包幫助
    2022-02-02

最新評論