设为首页 加入收藏

TOP

3.你所不知道的go语言控制语句——Leetcode习题69(二)
2023-08-26 21:10:06 】 浏览:148
Tags:Leetcode 习题
': fmt.Println("1.优秀") default: fmt.Println("1.错误的输入") } switch { case c == 'E', c == 'e': //可以有多个表达式 fmt.Println("2.不合格") case c == 'D', c == 'd': fmt.Println("2.基本合格") case c == 'C', c == 'c': fmt.Println("2.合格") case c == 'B', c == 'b': fmt.Println("2.良好") case c == 'A', c == 'a': fmt.Println("2.优秀") default: fmt.Println("2.错误的输入") } switch { case c == 'E': fmt.Println("3.不合格") fallthrough //fallthrough会执行下一个case区块 case c == 'e': fmt.Println("3.真的不合格") case c == 'D', c == 'd': fmt.Println("3.基本合格") case c == 'C', c == 'c': fmt.Println("3.合格") case c == 'B', c == 'b': fmt.Println("3.良好") case c == 'A', c == 'a': fmt.Println("3.优秀") default: fmt.Println("3.错误的输入") } var in interface{} = i switch data := in.(type) { //类型推断 case int: fmt.Printf("int: %v\n", data) case uint: fmt.Printf("uint: %v\n", data) default: fmt.Printf("type: %T\n", data) } }

结果如下:

请输入分数:90
优秀
请输入等级:E
1.不合格
2.不合格
3.不合格
3.真的不合格
int: 90

逻辑表达式

注意case可以是单个或多个逻辑表达式

	switch {
	case c == 'E', c == 'e': //可以有多个表达式
		fmt.Println("2.不合格")。
	case c == 'D', c == 'd':
		fmt.Println("2.基本合格")
	case c == 'C', c == 'c':
		fmt.Println("2.合格")
	case c == 'B', c == 'b':
		fmt.Println("2.良好")
	case c == 'A', c == 'a':
		fmt.Println("2.优秀")
	default:
		fmt.Println("2.错误的输入")
	}

fallthrough

fallthrough会执行下一个case区块

	switch {
	case c == 'E':
		fmt.Println("3.不合格")
		fallthrough //fallthrough会执行下一个case区块
	case c == 'e':
		fmt.Println("3.真的不合格")
	case c == 'D', c == 'd':
		fmt.Println("3.基本合格")
	case c == 'C', c == 'c':
		fmt.Println("3.合格")
	case c == 'B', c == 'b':
		fmt.Println("3.良好")
	case c == 'A', c == 'a':
		fmt.Println("3.优秀")
	default:
		fmt.Println("3.错误的输入")
	}

类型推断

这个是一个强大的方式,它可以用于推断go语言的接口的类型,不过现在只能简单那介绍一下,你可以将interface{}可以表达任何类型

	var in interface{} = i
	switch data := in.(type) { //类型推断
	case int:
		fmt.Printf("int: %v\n", data)
	case uint:
		fmt.Printf("uint: %v\n", data)
	default:
		fmt.Printf("type: %T\n", data)
	}

循环语句

循环语句只有for

package main

import "fmt"

func main() {
	var input int
	fmt.Printf("请输入分数(0-5):")
	fmt.Scanf("%d", &input)

	for i := 0; i < 5; i++ { //正常的for
		fmt.Println("loop1:", i)

		if i < 2 {
			continue //跳过本次执行
		}
		if i == input {
			fmt.Println("loop1: break") //跳出本层循环
			break
		}
	}
	i := 0
Loop:
	for i < 5 { //去掉;的for循环
		fmt.Println("loop2:", i)
		for j := 0; j < 5; j++ {
			if j == input {
				fmt.Println("loop2: break Loop") //跳出Loop标记的循环
				break Loop
			}
			if j == 1 {
				break //跳出本层循环
			}
		}
		i++
	}
	i = 0
	for ; i < 5; i++ { //空缺一个元素并带有;的for循环
		fmt.Println("loop3:", i)
		for j := 0; j < 5; j++ {
			if j < 2 {
				continue
			}
			if j == input {
				goto Exit //跳出到Exit
			}
		}
	}
	return
Exit:
	fmt.Println("loop3: Exit")
}

结果如下:

请输入分数(0-5):1
loop1: 0
loop1: 1
loop1: 2
l
首页 上一页 1 2 3 下一页 尾页 2/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇一文了解Gin对Cookie的支持 下一篇番外1.ssh连接管理器

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目