《Golang 入門系列六》golang的控制語句

來源:互聯網
上載者:User
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。

前言:本文主要闡述golang中的if else、switch語句和for迴圈的用法。

 

一、if else語句

1.1  基本文法

在有些情況下,條件陳述式兩側的括弧是可以被省略的;當條件比較複雜時,則可以使用括弧讓代碼更易讀。條件允許是符合條件,需使用 &&、|| 或 !,你可以使用括弧來提升某個運算式的運算優先順序,並提高代碼的可讀性。

第一種形式:if condition {    // do something } else {    // do something }第二種形式:if initialization; condition {    // do something}

1.2  樣本

package mainimport "fmt"func main() {// 第一種形式n := 7if n >= 0 {fmt.Printf("%d is >=0\n",n)} else {fmt.Printf("%d is <0\n",n)}//第二種形式//初始化的變數為局部變數if m := 9; m < 0 {fmt.Printf("%d is <0\n",m)} else if m > 0 {fmt.Printf("%d is >0\n",m)} else {fmt.Printf("%d is = 0",m)}//帶bool值的if bool1 := true; !bool1 {fmt.Printf("you are not right")} else if bool1 {fmt.Printf("you are right")}}

 

二、switch語句

2.1  基本文法

每一個case分支都是唯一的,從上至下逐一測試,直到匹配為止。如果在執行完每個分支的代碼後,還希望繼續執行後續分支的代碼,可以使用fallthrough關鍵字來達到目的。

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

2.2  樣本

package mainimport "fmt"func main() {switch n := 7; {case n > 0 && n == 7 :fmt.Printf("%d is > 0 && n == 7\n",n)fallthroughcase n > 5 || n == 5 :fmt.Printf("%d is > 5 || n == 5\n",n)//fallthroughdefault :fmt.Printf("%d is unavailable\n",n)}}

 

三、for 語句

3.1  基本文法

迴圈開始前,會執行且僅會執行一次初始化語句,初始設定變數是局部變數;條件陳述式在每次迴圈開始前都會進行判斷,一旦判斷結果為 false,則退出迴圈體;修飾語句 一般用於增加或減少計數器,迴圈結束後執行。

 for initialisation; condition; post {        }

3.2  樣本

package mainimport "fmt"func main() {for n := 1; n < 10; n++ {for m := 1; m <= n; m++ {fmt.Printf("%d * %d = %d\t",m,n,m*n)}fmt.Println()}}

 

四、Break 與 continue

4.1   break語句

一個 break 的作用範圍為該語句出現後的最內部的結構,它可以被用於任何形式的 for 迴圈(計數器、條件判斷等)。但在 switch 或 select 語句中,break 語句的作用結果是跳過整個代碼塊,執行後續的代碼。

package mainimport "fmt"func main() {for n := 1; n < 5; n++ {for m := 1; m < 5; m++ {if m == 2 {break}fmt.Printf("%d  VS  %d\n",n,m)}}}

4.2  continue語句

關鍵字 continue 忽略剩餘的迴圈體而直接進入下一次迴圈的過程,關鍵字 continue 只能被用於 for 迴圈中

package mainimport "fmt"func main() {for n := 1; n < 5; n++ {if n == 2 {continue}fmt.Printf("%d\n",n)}}

 

五、goto語句

for、switch 或 select 語句都可以配合標籤(label)形式的標識符使用,標籤的名稱是大小寫敏感的,為了提升可讀性,建議使用全部大寫字母

package mainimport "fmt"func main() {for i := 0; i <= 5; i++ {for j := 0; j <= 5; j++ {if j == 4 {goto LABEL1}fmt.Printf("i is: %d, and j is: %d\n", i, j)}}LABEL1:}

為了方便大家交流,本人開通了公眾號和QQ群,QQ群:291519319,喜歡技術的一起來交流吧

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.