Skip to content

控制语句

参考资料:

1、判断

以年龄为例,输入的年龄在某一个区间,就输出对应的提示信息

go
<=0     未出生
1-18    未成年
18-35   青年
>=35    中年

1.1.if

go
func main() {
	var age int
	fmt.Println("请输入你的年龄:")

	fmt.Scan(&age)

	if age <= 0 {
		fmt.Println("未出生")
		return
	}
	if age <= 18 {
		fmt.Println("未成年")
		return
	}
	if age <= 35 {
		fmt.Println("青年")
		return
	}
	fmt.Println("中年")
}

1.2.switch

go
func main() {
	var age int
	fmt.Println("请输入你的年龄:")

	fmt.Scan(&age)

	switch {
	case age <= 0:
		fmt.Println("未出生")
	case age <= 18:
		fmt.Println("未成年")
	case age <= 35:
		fmt.Println("青年")
	default:
		fmt.Println("中年")
	}

}

3、for

for循环,一般写法是:

go
for 初始化;条件;操作{
}

例如求1+2+...+100的和:

go
func main() {
	// for 循环
	var result = 0
	for i := 1; i <= 100; i++ {
		result += i
	}
	fmt.Println(result)
}

for 循环,还有其它的变体如下:

go
func main() {
	// 死循环,每隔1秒打印当前的时间
	for {
		time.Sleep(1 * time.Second)
		fmt.Println(time.Now().Format("2006-01-02 15:04:05"))
	}

	// golang 没有 while 循环,如果需要使用 while 循环,是由 for 变体
	i := 0
	sum := 0
	for i <= 100 {
		sum += i
		i++
	}
	fmt.Println(sum)

	// do - while
	j := 0
	sum2 := 0
	for {
		sum2 += j
		j++
		if j > 100 {
			break
		}
	}
	fmt.Println(sum2)

	// 遍历切片
	s := []string{"A", "B", "C", "D", "E"}
	for index := range s {
		fmt.Println(index, s[index])
	}

	// 遍历map
	map01 := map[string]string{
		"A": "A",
		"B": "B",
		"C": "C",
		"D": "D",
		"E": "E",
	}
	for key, value := range map01 {
		fmt.Println(key, value)
	}

	// break:跳过循环
	// continue:跳过本轮循环

}