编辑
2022-09-22
Golang
00
请注意,本文编写于 790 天前,最后修改于 758 天前,其中某些信息可能已经过时。

目录

循环结构
条件分支结构
if else
switch case
跳转 goto

循环结构

循环结构的语法如下

go
for init; condition; post { //循环体代码块 }
  • for表明接下来的代码是for循环结构;
  • init是初始化语句;
  • condition是关系或逻辑表达式,值为false时则会停止循环;
  • post是每次循环结束后执行的语句;
  • 循环体代码块就是要重复执行的代码了。

相关信息

go
// 终止本次循环,执行下一个循环 continue // 终止整个循环 break

举例说明:

go
n := 7 for i := 1; i <= n; i++ { for j := 0; j < n-i; j++ { fmt.Print(" ") } for k := 0; k < 2*i-1; k++ { fmt.Print("*") } fmt.Println() }

Initpost 语句是可选的,因此我们也可以使我们的for循环表现得像一个 while 循环

go
i := 0 for ;i < 10; { i += 1 }
go
// 死循环 for { // do something }

条件分支结构

if else

条件分支结构语法如下

condition是关系或逻辑表达式

go
if condition { //条件成立时要执行的语句 }else{ //条件不成立时要执行的语句 }
go
// 如无必要,else是可以省略的 if condition { //条件成立时要执行的语句 }
go
// 如有必要,还可追加更多的判断条件 if condition1 { //条件condition1成立时要执行的语句 }else if condition2 { //条件condition2成立时要执行的语句 }else if condition3 { //条件condition3成立时要执行的语句 }else{ //以上三种条件都不成立时要执行的语句 }

举例说明:

go
var a int = 10 var b int = 5 var c int = 20 if a > b || a > c { fmt.Print("ok") }

switch case

switch 的本质是:将 case 与 condition 判等,若为 true 则执行

相关信息

在 Go 中,switch case 只运行第一个值等于条件表达式的 case,而不是后面的所有 case。 因此,与其他语言不同,break语句会自动添加到每个案例的末尾。

go
func main() { day := "monday" switch day { case "monday": fmt.Println("time to work!") case "friday": fmt.Println("let's party") default: fmt.Println("browse memes") } } // time to work

如果需要执行其他 case,则需要使用 fallthrough 关键字来进行

go
switch day := "monday"; day { case "monday": fmt.Println("time to work!") //这里使用了 fallthrough fallthrough case "friday": fmt.Println("let's party") default: fmt.Println("browse memes") } // time to work! // let's party

注意

如果不填入条件,默认为 switch true

go
x := 10 switch { case x > 5: fmt.Println("yes") default: fmt.Println("no") } // yes
go
x := 1 switch { case x > 5: fmt.Println("yes") default: fmt.Println("no") } // no

跳转 goto

goto 可以跳转到程序中指定的行

和嵌套循环里的break标签是一样的,不管后面还有多少代码都不再执行。

go
TestLabel: for a := 20; a < 35; a++ { if a == 25 { a += 1 goto TestLabel } fmt.Println(a) a++ }

本文作者:Silon汐冷

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!