持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第14天,点击查看活动详情
一、break介绍
break语句用于终止某个语句块的执行,用于中断当前for循环或跳出switch语句。
1.1 基本语法
{
....
break
.....
}
1.2 注意事项
1.2.1 配合标签使用 label
break语句出现在多层嵌套的语句块中时,可以通过标签指明要终止的是哪一层语句
label1: { .....
label2: {.....
label3: {.....
break label2;
......
}
}
}
二、案例分析
2.2 随机数案例
使用随机数生成数字 99 ,查看使用了多少次循环
package main
import (
"fmt"
"math/rand"
"time"
)
func main() {
//
var count int
for {
// 随机种子设置
rand.Seed(time.Now().UnixNano())
// 生成随机数 前闭后开
n := rand.Intn(100) + 1
fmt.Printf("随机生成 %v \n", n)
count++
if n == 99 {
fmt.Printf("当前运行了 %v 次", count)
break
}
}
}
2.2 标签案例
package main
import "fmt"
func main() {
label2:
for i := 0; i < 5; i++ {
for j := 0; j < 10; j++ {
if j == 4 {
//符合条件直接跳出大循环
break label2
}
fmt.Println("j = ", j)
}
}
}
2.3 在100以内求和大于30时的数字
package main
import "fmt"
func main() {
// 100以内的数求和,求出 当前和总数大于30的 当前数
var count_sum int
for i := 1; i < 100; i++ {
count_sum += i
if count_sum > 20 {
fmt.Printf("当前数为:%v \n", i)
break
}
}
}
2.4 登陆验证案例
实现登陆验证,仅提供三次机会,指定用户密码匹配成功即为登陆成功
package main
import "fmt"
func main() {
// 实现登陆验证,匹配对应的用户名密码即为登陆成功
// 否则提示剩余机会
var userName string
var passWord string
for i := 1; i <= 3; i++ {
fmt.Printf("请输入用户名:")
fmt.Scanln(&userName)
fmt.Printf("请输入密码:")
fmt.Scanln(&passWord)
if userName == "feng" {
if passWord == "12345678" {
fmt.Println("登陆成功!")
break
} else {
fmt.Println("密码错误,请重新输入")
fmt.Printf("剩余次数 %v\n", 3-i)
}
} else {
fmt.Println("用户名错误,请重新输入")
fmt.Printf("剩余次数 %v\n", 3-i)
}
fmt.Println("机会用完,登录失败!")
}
}