「这是我参与11月更文挑战的第11天,活动详情查看:2021最后一次更文挑战」
写在前面👀
今天主要聊聊break,continue,goto🧈
一、标签(label)🍞
字段声明后面可以跟一个可选的字符串文字(标记),它称为相应字段声明中所有字段的属性🥐
- 三个语句都可以配合标签使用
- 标签名区分大小写(推荐大写),定以后若不使用会造成编译错误
- continue、break配合标签可用于多层循环跳出
- goto是调整执行位置,与continue、break配合标签的结果并不相同
二、break语句🥨
在Go中,break可以结束for、swich、和slect的代码块🥯
- 语法👇
break
break label
- 示例👇
package main
import "fmt"
func main() {
/*标签,标记外循环的位置*/
OuterLoop:
for i := 0; i < 10; i++ {
fmt.Printf("💗\n")
for j := 0; j < 10; j++ {
fmt.Printf("💖\n")
if i == 1 && j == 1 {
/* 跳出 OuterLoop 代码块*/
break OuterLoop
}
}
}
fmt.Println("跳出多重循环")
}
- 结果👇
三、continue语句🥯
在Go中,continue只能用于for,用来跳过一次当前的循环🥖
- 语法👇
continue
continue label
- 示例👇
package main
import (
"fmt"
"time"
)
func main() {
j := 1
for i := 1; i <= 10; i++ {
time.Sleep(time.Second)
if i >= 5 && i <= 7 {
fmt.Printf("暂停%d秒!\n", i-4)
continue
} else {
fmt.Println(j)
j++
}
}
}
- 结果👇
四、goto语句🧀
在Go中,goto语句可以无条件地转移标签位置。通常与条件语句配合使用,可用来实现条件转移, 构成循环,跳出循环体等功能🥗 但是,在结构化程序设计中一般不主张使用 goto 语句, 以免造成程序流程的混乱,使理解和调试程序都产生困难。
- 语法👇
goto label
- 示例👇
package main
import (
"fmt"
"time"
)
func main() {
for i := 1; i <= 10; i++ {
time.Sleep(time.Second)
if i == 5 {
goto Out
}
fmt.Println(i)
}
Out:
fmt.Println("数到五秒我就去学习!")
}
- 结果👇
写在后面🙌
感谢观看✨
如有不足,欢迎指出💖