溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Go語言中的條件語句怎么使用

發布時間:2022-04-22 13:45:22 來源:億速云 閱讀:179 作者:iii 欄目:開發技術

這篇文章主要介紹“Go語言中的條件語句怎么使用”,在日常操作中,相信很多人在Go語言中的條件語句怎么使用問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Go語言中的條件語句怎么使用”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

    條件語句需要開發者通過指定一個或多個條件,并通過測試條件是否為 true 來決定是否執行指定語句,并在條件為 false 的情況在執行另外的語句。

    Go 語言提供了以下幾種條件判斷語句:

    語句描述
    if 語句if 語句 由一個布爾表達式后緊跟一個或多個語句組成。
    if...else 語句if 語句 后可以使用可選的 else 語句, else 語句中的表達式在布爾表達式為 false 時執行
    if 嵌套語句你可以在 if 或 else if 語句中嵌入一個或多個 if 或 else if 語句。
    switch 語句switch 語句用于基于不同條件執行不同動作。
    select 語句select 語句類似于 switch 語句,但是select會隨機執行一個可運行的case。如果沒有case可運行,它將阻塞,直到有case可運行。

    if語句

    if 語句由布爾表達式后緊跟一個或多個語句組成。

    語法

    Go 編程語言中 if 語句的語法如下:

    if 布爾表達式 { /* 在布爾表達式為 true 時執行 */ }

    If 在布爾表達式為 true 時,其后緊跟的語句塊執行,如果為 false 則不執行。

    實例

    使用 if 判斷一個數變量的大?。?/p>

    package main
      
    import "fmt"
      
    func main() {
       /* 定義局部變量 */
       var a int = 10
      
       /* 使用 if 語句判斷布爾表達式 */
       if a < 20 {
           /* 如果條件為 true 則執行以下語句 */
           fmt.Printf("a 小于 20\n" )
       }
       fmt.Printf("a 的值為 : %d\n", a)
    }

    以上代碼執行結果為:

    a 小于 20 a 的值為 : 10

    if...else 語句

    if 語句 后可以使用可選的 else 語句, else 語句中的表達式在布爾表達式為 false 時執行。

    語法

    Go 編程語言中 if...else 語句的語法如下:

    if 布爾表達式 { /* 在布爾表達式為 true 時執行 */ } else { /* 在布爾表達式為 false 時執行 */ }

    If 在布爾表達式為 true 時,其后緊跟的語句塊執行,如果為 false 則執行 else 語句塊。

    實例

    使用 if else 判斷一個數的大?。?/p>

    package main
      
    import "fmt"
      
    func main() {
       /* 局部變量定義 */
       var a int = 100;
      
       /* 判斷布爾表達式 */
       if a < 20 {
           /* 如果條件為 true 則執行以下語句 */
           fmt.Printf("a 小于 20\n" );
       } else {
           /* 如果條件為 false 則執行以下語句 */
           fmt.Printf("a 不小于 20\n" );
       }
       fmt.Printf("a 的值為 : %d\n", a);
      
    }

    以上代碼執行結果為:

    a 不小于 20 a 的值為 : 100

    if 語句嵌套

    你可以在 if 或 else if 語句中嵌入一個或多個 if 或 else if 語句。

    語法

    Go 編程語言中 if...else 語句的語法如下:

    if 布爾表達式 1 { /* 在布爾表達式 1 為 true 時執行 */ if 布爾表達式 2 { /* 在布爾表達式 2 為 true 時執行 */ } }

    你可以以同樣的方式在 if 語句中嵌套 else if...else 語句

    實例

    嵌套使用 if 語句:

    package main
      
    import "fmt"
      
    func main() {
       /* 定義局部變量 */
       var a int = 100
       var b int = 200
      
       /* 判斷條件 */
       if a == 100 {
           /* if 條件語句為 true 執行 */
           if b == 200 {
              /* if 條件語句為 true 執行 */
              fmt.Printf("a 的值為 100 , b 的值為 200\n" );
           }
       }
       fmt.Printf("a 值為 : %d\n", a );
       fmt.Printf("b 值為 : %d\n", b );
    }

    以上代碼執行結果為:

    a 的值為 100 , b 的值為 200 a 值為 : 100 b 值為 : 200

    switch 語句

    switch 語句用于基于不同條件執行不同動作,每一個 case 分支都是唯一的,從上至下逐一測試,直到匹配為止。

    switch 語句執行的過程從上至下,直到找到匹配項,匹配項后面也不需要再加 break。

    switch 默認情況下 case 最后自帶 break 語句,匹配成功后就不會執行其他 case,如果我們需要執行后面的 case,可以使用 fallthrough 。

    語法

    Go 編程語言中 switch 語句的語法如下:

    switch var1 { case val1: ... case val2: ... default: ... }

    變量 var1 可以是任何類型,而 val1 和 val2 則可以是同類型的任意值。類型不被局限于常量或整數,但必須是相同的類型;或者最終結果為相同類型的表達式。

    您可以同時測試多個可能符合條件的值,使用逗號分割它們,例如:case val1, val2, val3。

    流程圖:

    Go語言中的條件語句怎么使用

    實例

    package main
      
    import "fmt"
      
    func main() {
       /* 定義局部變量 */
       var grade string = "B"
       var marks int = 90
      
       switch marks {
          case 90: grade = "A"
          case 80: grade = "B"
          case 50,60,70 : grade = "C"
          default: grade = "D" 
       }
      
       switch {
          case grade == "A" :
             fmt.Printf("優秀!\n" )   
          case grade == "B", grade == "C" :
             fmt.Printf("良好\n" )     
          case grade == "D" :
             fmt.Printf("及格\n" )     
          case grade == "F":
             fmt.Printf("不及格\n" )
          default:
             fmt.Printf("差\n" );
       }
       fmt.Printf("你的等級是 %s\n", grade );     
    }

    以上代碼執行結果為:

    優秀! 你的等級是 A

    Type Switch

    switch 語句還可以被用于 type-switch 來判斷某個 interface 變量中實際存儲的變量類型。

    Type Switch 語法格式如下:

    switch x.(type){ case type: statement(s); case type: statement(s); /* 你可以定義任意個數的case */ default: /* 可選 */ statement(s); }

    實例

    package main
      
    import "fmt"
      
    func main() {
       var x interface{}
          
       switch i := x.(type) {
          case nil: 
             fmt.Printf(" x 的類型 :%T",i)               
          case int: 
             fmt.Printf("x 是 int 型")                     
          case float64:
             fmt.Printf("x 是 float64 型")         
          case func(int) float64:
             fmt.Printf("x 是 func(int) 型")                     
          case bool, string:
             fmt.Printf("x 是 bool 或 string 型" )     
          default:
             fmt.Printf("未知型")   
       } 
    }

    以上代碼執行結果為:

    x 的類型 :<nil>

    fallthrough

    使用 fallthrough 會強制執行后面的 case 語句,fallthrough 不會判斷下一條 case 的表達式結果是否為 true。

    實例

    package main
      
    import "fmt"
      
    func main() {
      
        switch {
        case false:
                fmt.Println("1、case 條件語句為 false")
                fallthrough
        case true:
                fmt.Println("2、case 條件語句為 true")
                fallthrough
        case false:
                fmt.Println("3、case 條件語句為 false")
                fallthrough
        case true:
                fmt.Println("4、case 條件語句為 true")
        case false:
                fmt.Println("5、case 條件語句為 false")
                fallthrough
        default:
                fmt.Println("6、默認 case")
        }
    }

    以上代碼執行結果為:

    2、case 條件語句為 true 3、case 條件語句為 false 4、case 條件語句為 true

    從以上代碼輸出的結果可以看出:switch 從第一個判斷表達式為 true 的 case 開始執行,如果 case 帶有 fallthrough,程序會繼續執行下一條 case,且它不會去判斷下一個 case 的表達式是否為 true。

    select 語句

    select 是 Go 中的一個控制結構,類似于用于通信的 switch 語句。每個 case 必須是一個通信操作,要么是發送要么是接收。

    select 隨機執行一個可運行的 case。如果沒有 case 可運行,它將阻塞,直到有 case 可運行。一個默認的子句應該總是可運行的。

    語法

    Go 編程語言中 select 語句的語法如下:

    select {
        case communication clause  :
           statement(s);      
        case communication clause  :
           statement(s);
        /* 你可以定義任意數量的 case */
        default : /* 可選 */
           statement(s);
    }

    以下描述了 select 語句的語法:

    • 每個 case 都必須是一個通信

    • 所有 channel 表達式都會被求值

    • 所有被發送的表達式都會被求值

    • 如果任意某個通信可以進行,它就執行,其他被忽略。

    • 如果有多個 case 都可以運行,Select 會隨機公平地選出一個執行。其他不會執行。

    否則:

    • 如果有 default 子句,則執行該語句。

      如果沒有 default 子句,select 將阻塞,直到某個通信可以運行;Go 不會重新對 channel 或值進行求值。

    實例

    select 語句應用演示:

    package main
      
    import "fmt"
      
    func main() {
       var c1, c2, c3 chan int
       var i1, i2 int
       select {
          case i1 = <-c1:
             fmt.Printf("received ", i1, " from c1\n")
          case c2 <- i2:
             fmt.Printf("sent ", i2, " to c2\n")
          case i3, ok := (<-c3):  // same as: i3, ok := <-c3
             if ok {
                fmt.Printf("received ", i3, " from c3\n")
             } else {
                fmt.Printf("c3 is closed\n")
             }
          default:
             fmt.Printf("no communication\n")
       }   
    }

    以上代碼執行結果為:

    no communication

    校內舉辦跑步比賽,10s內進去比賽,分性別,進入男子組,女子組

    package main
      
    import "fmt"
      
    //if語句嵌套
    //校內舉辦跑步比賽,10s內進去比賽,分性別,進入男子組,女子組
    func main() {
        var (
            a = 9
            b = "男"
        )
        if a < 10 && b == "男" {
            fmt.Println("進去決賽")
            fmt.Println("進入男子")
        }
        if a < 10 && b == "女" {
            fmt.Println("進去決賽")
            fmt.Println("進入女子組")
        }
        if a > 10 {
            fmt.Println("滾")
        }
      
        /*
            if a < 10 {
                fmt.Println("進去決賽")
      
                if b == "男" {
                    fmt.Println("進入男子")
                } else {
                    fmt.Println("進入女子")
                }
            } else {
                fmt.Println("滾")
            }*/
    }
      
    //switch語句,對學生成績進行考評,90-100:優秀,80-89:良好,60-79及格,60以下,不及格
    package main
      
    import "fmt"
      
    func main() {
      
        var vaule = 1
      
        switch vaule {
        case 1:
            fmt.Println("1")
      
        case 2:
            fmt.Println("2")
      
        case 3:
            fmt.Println("3")
        default:
            fmt.Println("滾犢子")
        }
      
        /*
            var a = 77
            //等效于if else 語句
            switch {
            case a >= 90 && a <= 100:
                fmt.Println("好")
            case a >= 80 && a <= 89:
                fmt.Println("還行")
            case a >= 60 && a <= 79:
                fmt.Println("合格")
            default:
                fmt.Println("不合格")
            }*/
    }

    到此,關于“Go語言中的條件語句怎么使用”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

    向AI問一下細節

    免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

    AI

    亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女