Go语言之fo循环与条件判断

时间:2022-03-11 19:15:21

一、for循环

Go 语言中没有 while 循环,只有一个 for 循环

?
1
2
3
for 变量初始化;条件;变量自增/自减 {
    循环体内容
}

1、基本使用

?
1
2
3
for i := 0; i < 10; i++ {
   fmt.Println(i)
}

2、省略第一部分

?
1
2
3
4
i := 0
for ; i < 10; i++ {
   fmt.Println(i)
}

3、省略第一和三部分(这是一个 while 循环) for 条件 { 循环体内容 }

?
1
2
3
4
5
i := 0
for i < 10 {
   fmt.Println(i)
   i++
}

4、死循环

?
1
2
3
for {
    fmt.Println("死循环")
}

5、开多协程演示

?
1
2
3
4
5
6
7
8
9
for i := 0; i < 2000; i++ {
   go test()
}
 
func test() {
 for {
  fmt.Println("死循环")
 }
}

6、break

结束本次 for 循环,continue 结束本次循环,继续下一次循环

二、Switch语句

Switch 是一个条件语句,用于将表达式的值与可能匹配的选项列表进行比较,并根据匹配情况执行相应的代码块,它可以被认为是替代多个 if else 语句的常用方式

1、基本使用

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
num := 4
switch num {
case 1:
   fmt.Println("1")
case 2:
   fmt.Println("2")
case 3:
   fmt.Println("3")
case 4:
   fmt.Println("4")
}
 
// 输出
4

2、默认情况(都没有匹配上)

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
num := 5
switch num {
case 1:
   fmt.Println("1")
case 2:
   fmt.Println("2")
case 3:
   fmt.Println("3")
case 4:
   fmt.Println("4")
default:
   fmt.Println("都没有匹配上")
}
 
// 输出
都没有匹配上

3、多表达式判断

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
num := 44
switch num {
case 11, 12, 13, 14:
   fmt.Println("1")
case 21, 22:
   fmt.Println("2")
case 31, 33:
   fmt.Println("3")
case 40, 43, 44:
   fmt.Println("4")
default:
   fmt.Println("都没有匹配上")
}
 
// 输出
4

4、无表达式的 Switch

?
1
2
3
4
5
6
7
8
9
10
num := 44
switch {
case num == 11, num == 12:
   fmt.Println(11, 12)
case num == 40, num == 44:
   fmt.Println(40, 44)
}
 
// 输出
40 44

5、Fallthrough

穿透,只要看到 fallthrough,无条件执行下一个 case 或者 default

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
num := 12
switch {
case num == 11, num == 12:
   fmt.Println(11, 12)
   fallthrough
case num == 40, num == 44:
   fmt.Println(40, 44)
   fallthrough
default:
   fmt.Println("无匹配")
}
 
// 输出
11 12
40 44
无匹配

到此这篇关于Go语言之fo循环与条件判断的文章就介绍到这了,更多相关Go语言循环与条件判断内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://www.cnblogs.com/XiaoYang-sir/p/15375719.html