這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。
前言:本文主要闡述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,喜歡技術的一起來交流吧