Go 语言提供了以下几种条件判断语句:
if
语句 由一个布尔表达式后紧跟一个或多个语句组成。
if else
语句 后可以使用可选的 else 语句, else 语句中的表达式在布尔表达式为 false 时执行。
你可以在 if 或 else if 语句中嵌入一个或多个 if 或 else if 语句。
// go 语言的if 判断条件没有 ()
// if 条件中可以声明变量 且在后边语句中使用
if fp, err := os.Open("./textTest/a.txt"); err != nil {
fmt.Println(err)
} else {
fmt.Println(fp)
}
switch
switch 语句用于基于不同条件执行不同动作。 switch不需要break,也可以直接switch多个条件
// 一个判断条件
a:=1
switch a {
case 1:
fmt.Println(a,1)
case 2:
fmt.Println(a,2)
case 3:
fmt.Println(a,3)
}
// 多个判断条件
var str = "abc"
switch {
case a > 10:
str = "不及格"
case a > 20:
str = "及格"
}
return str
循环语句 for
go语言中没有 while 循环,但是 for 可以当作 while 使用
func forTest() {
// 完整 for 循环
for a:=0; a< 3 ; a++{
fmt.Println(a)
}
file, fileErr := os.Open("./textTest/a.txt")
if fileErr!=nil {
panic("打开文件错误")
}
scanner := bufio.NewScanner(file)
// 省略起始条件 递增条件
for scanner.Scan() {
// 输出文件的 每行内容
fmt.Println(scanner.Text())
}
// 省略全部条件 是一个死循环 可以通过 break 关键字进行跳出
for {
fmt.Println("这是一个死循环")
break
}
}
跳出循环
break
语句 经常用于中断当前 for 循环或跳出 switch 语句
continue
语句 跳过当前循环的剩余语句,然后继续进行下一轮循环。
goto
语句 将控制转移到被标记的语句。(不常用)