<dd id="3pk9i"><optgroup id="3pk9i"><video id="3pk9i"></video></optgroup></dd>
<rp id="3pk9i"></rp>

<dd id="3pk9i"><track id="3pk9i"></track></dd>
      1. <th id="3pk9i"></th>
        1. <ol id="3pk9i"><ruby id="3pk9i"></ruby></ol>

        2. golang流程控制語句有哪些

          來源:php中文網 | 2022-12-28 18:08:06 |

          本教程操作環境:windows7系統、GO 1.18版本、Dell G3電腦。

          下面我們了解一下關于golang流程控制語句的基本內容。

          1、條件分支語句

          和c語言類似,相關的條件語句如下表所示:


          (資料圖片)

          語句描述
          if 語句if 語句 由一個布爾表達式后緊跟一個或多個語句組成。
          if…else 語句if 語句 后可以使用可選的 else 語句, else 語句中的表達式在布爾表達式為 false 時執行。
          switch 語句switch 語句用于基于不同條件執行不同動作。
          select 語句select 語句類似于 switch 語句,但是select會隨機執行一個可運行的case。如果沒有case可運行,它將阻塞,直到有case可運行。
          if語句 語法如下:
          if 布爾表達式 {   /* 在布爾表達式為 true 時執行 */}
          if-else語句
          if 布爾表達式 {   /* 在布爾表達式為 true 時執行 */} else {/* 在布爾表達式為 false 時執行 */}
          switch語句 其中的變量v可以是任何類型,val1val2可以是同類型的任意值,類型不局限為常量或者整數,或者最終結果為相同類型的表達式。
          switch v {    case val1:        ...    case val2:        ...    default:        ...}
          select語句 select 是 Go 中的一個控制結構,類似于用于通信的 switch 語句。每個 case 必須是一個通信操作,要么是發送要么是接收。它將會隨機執行一個可運行的 case。如果沒有 case 可運行,它將阻塞,直到有 case 可運行。一個默認的子句應該總是可運行的。
          select {    case communication clause  :       statement(s);          case communication clause  :       statement(s);    /* 你可以定義任意數量的 case */    default : /* 可選 */       statement(s);}

          注意:

          每個case必須都是一個通信所有channel表達式都會被求值,所有被發送的表達式都會被求值如果任意某一個通信都可以,它就執行,其他就忽略如果有多個case都可以運行,select就會隨機挑選一個來執行。如果沒有一個case可以被運行:如果有default子句,就執行default子句,select將被阻塞,直到某個通信可以運行,從而避免饑餓問題。

          2、循環語句

          2.1 循環處理語句

          與多數語言不同的是,Go語言中的循環語句只支持 for 關鍵字,而不支持 while 和 do-while 結構,關鍵字 for 的基本使用方法與C語言和 C++ 中非常接近。

          go中時使用for實現循環的,共有三種形式:

          語法
          和c語言中的for相同for init; condition; post {}
          和c語言中的while相同for condition{}
          和c語言中的for(;;)相同for{}

          除此以外,for循環還可以直接使用range對slice、map、數組以及字符串等進行迭代循環,格式如下:

          for key, value := range oldmap {newmap[key] = value}

          2.2 循環控制語句

          控制語句詳解
          break中斷跳出循環或者switch語句
          continue跳過當前循環的剩余語句,然后繼續下一輪循環
          goto語句將控制轉移到被標記的語句

          1、break

          break主要用于循環語句跳出循環,和c語言中的使用方式是相同的。且在多重循環的時候還可以使用label標出想要break的循環。 實例代碼如下:

          a := 0for a<5 {fmt.Printf("%d\n", a)a++if a==2 {break;}}/* output012*/

          2、continue

          Go 語言的 continue 語句 有點像 break 語句。但是 continue 不是跳出循環,而是跳過當前循環執行下一次循環語句。在多重循環中,可以用標號 label 標出想 continue 的循環。 實例代碼如下:

          // 不使用標記    fmt.Println("---- continue ---- ")    for i := 1; i <= 3; i++ {        fmt.Printf("i: %d\n", i)            for i2 := 11; i2 <= 13; i2++ {                fmt.Printf("i2: %d\n", i2)                continue            }    }/* outputi: 1i2: 11i2: 12i2: 13i: 2i2: 11i2: 12i2: 13i: 3i2: 11i2: 12i2: 13*/    // 使用標記    fmt.Println("---- continue label ----")    re:        for i := 1; i <= 3; i++ {            fmt.Printf("i: %d", i)                for i2 := 11; i2 <= 13; i2++ {                    fmt.Printf("i2: %d\n", i2)                    continue re                }        }/* outputi: 1i2: 11i: 2i2: 11i: 3i2: 11*/

          3、goto

          goto語句主要是無條件轉移到過程中指定的行。goto語句通常和條件語句配合使用,可用來實現條件轉移、構成循環以及跳出循環體等功能。但是并不主張使用goto語句,以免造成程序流程混亂。 示例代碼如下:

          var a int = 0LOOP: for a<5 {if a == 2 {a = a+1goto LOOP}fmt.Printf("%d\n", a)a++}/*output:01234*/

          以上代碼中的LOOP就是一個標簽,當運行到goto語句的時候,此時執行流就會跳轉到LOOP標志的哪一行上。

          以上就是golang流程控制語句有哪些的詳細內容,更多請關注php中文網其它相關文章!

          關鍵詞: 流程控制 go語言 Golang

          中文字幕在线观看2021
          <dd id="3pk9i"><optgroup id="3pk9i"><video id="3pk9i"></video></optgroup></dd>
          <rp id="3pk9i"></rp>

          <dd id="3pk9i"><track id="3pk9i"></track></dd>
            1. <th id="3pk9i"></th>
              1. <ol id="3pk9i"><ruby id="3pk9i"></ruby></ol>