集中常見的條件判斷語句spa
語句 | 描述 |
---|---|
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 布爾表達式 { /* 在布爾表達式爲 true 時執行 */ }
**與C語言等不一樣的是在if後面的布爾表達式沒有括號
eg:
package main
import "fmt"
func main() {
var a int = 10
var b float32 = 10.1
if a < 20 {
fmt.Println("a 小於 20 \n")
}
fmt.Println("a,b的值爲: %d,%f\n", a, b)
}
switch語句語法:
switch var1 { case val1: ... case val2: ... default: ... }
select是Go中的一個控制結構,相似於用於通訊的switch語句。每一個case必須是一個通訊操做,要麼是發送要麼是接收。
select語句語法:
select { case communication clause : statement(s); case communication clause : statement(s); /* 你能夠定義任意數量的 case */ default : /* 可選 */ statement(s); }
eg:
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):
if ok {
fmt.Printf("received ", i3, "from c3\n")
} else {
fmt.Printf("c3 is closed\n")
}
default:
fmt.Printf("no communication\n")
}
}
結果爲:
no communication
循環語句:
循環類型 | 描述 |
---|---|
for 循環 | 重複執行語句塊 |
循環嵌套 | 在 for 循環中嵌套一個或多個 for 循環it |
控制語句 | 描述 |
---|---|
break 語句 | 常常用於中斷當前 for 循環或跳出 switch 語句 |
continue 語句 | 跳過當前循環的剩餘語句,而後繼續進行下一輪循環。 |
goto 語句 | 將控制轉移到被標記的語句。 |
goto 語法格式以下:io
goto label; .. . label: statement;
eg :
package main import "fmt" func main() { /* 定義局部變量 */ var a int = 10 /* 循環 */ LOOP: for a < 20 { if a == 15 { /* 跳過迭代 */ a = a + 1 goto LOOP } fmt.Printf("a的值爲 : %d\n", a) a++ } }