集中常见的条件判断语句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++ } }