GO基础之流程控制语句
一、if分支语句
if 布尔表达式 1 {
/* 在布尔表达式 1 为 true 时执行 */
}
if a := 2; a%2 == 0 { fmt.Println("偶数") }
if 布尔表达式 1 {
/* 在布尔表达式 1 为 true 时执行 */
}else{
/* todo else */
}
if a := 2; a%2 == 0 { fmt.Println("偶数") } else { fmt.Println("奇数") }
if 布尔表达式 1 { /* 在布尔表达式 1 为 true 时执行 */ }else if 布尔表达式 2{
/* 在布尔表达式 1 为 true 时执行 */
}else{ /* todo else */ }
func main() { var b = 70 if b >= 90 { fmt.Println("优秀") } else if b >= 80 { fmt.Println("良好") } else { fmt.Println("及格") } }
二、for循环语句
func main() { //=======格式1=========== for i := 0; i < 10; i++ { fmt.Println("i=", i) } //=======格式2=========== a := 2 for ; a < 5; a++ { fmt.Println("a=", a) } //=======格式3(死循环)==== b := 10 for { if b == 5 { break } b-- fmt.Println("b=", b) } }
break
语句用于在完成正常执行之前,突然终止 for 循环。
func main() { //=======格式1=========== for i := 0; i < 10; i++ { if i >= 5 { break } fmt.Println("i=", i) } }
输出:i= 0;i= 1;i= 2;i= 3;i= 4
continue
语句用来跳出 for
循环中当前循环。在 continue
语句后的所有的 for
循环语句都不会在本次循环中执行。循环体会在一下次循环中继续执行。
func main() { for i := 0; i < 5; i++ { if i == 3 { continue } fmt.Println("i=", i) } }
输出:i= 0;i= 1;i= 2;i= 4
goto 语句类似continue
终止当前循环,进入指定的位置(Loop)继续运行
func main() { num := 0 Loop: for num < 5 { num++ if num%4 == 0 { goto Loop } fmt.Println("i=", num) } }
三、swich分支语句
go语言中的switch语句默认每个case 都有break,这与java语言略有不同
func main() { //=========== 格式一 =========== switch finger := 3; finger { case 1: fmt.Println("1") case 2: fmt.Println("2") case 3: fmt.Println("3") default: fmt.Println("0") } //===========case后可以多个条件=========== letter := "i" switch letter { case "a", "e", "i", "o", "u": // 一个选项多个表达式 fmt.Println("hello") default: fmt.Println("word") } //在 switch 语句中,表达式是可选的,可以被省略。如果省略表达式,则表示这个 switch 语句等同于 switch true num := 75 switch { // 表达式被省略了 case num >= 0 && num <= 50: fmt.Println("num is greater than 0 and less than 50") case num >= 51 && num <= 100: fmt.Println("num is greater than 51 and less than 100") case num >= 101: fmt.Println("num is greater than 100") } }
fallthrough语句:在 Go 中,每执行完一个 case 后,会从 switch 语句中跳出来,不再做后续 case 的判断和执行。使用 fallthrough
语句可以在已经执行完成的 case 之后,把控制权转移到下一个 case 的执行代码中。类似于java 中case之后不写break
func main() { //=========== 格式一 =========== switch finger := 3; finger { case 1: fmt.Println("1") case 2: fmt.Println("2") case 3: fmt.Println("3") fallthrough default: fmt.Println("0") } }
每天用心记录一点点。内容也许不重要,但习惯很重要!