【一Go到底】第十四天---break快速入门

92 阅读1分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 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("机会用完,登录失败!")
	}
}