GO语言基础教程6——流程控制-循环语句
GO语言基础教程6——流程控制-循环语句
Go 语言中的所有循环类型均可以使用for
关键字来完成。
for循环的基本格式如下
for 初始语句;条件表达式;结束语句{ 循环体语句 }
条件表达式返回true
时循环体不停地进行循环,直到条件表达式返回false
时自动退出循环。
func forLesson() { for i := 0; i < 10; i++ { fmt.Println(i) } //当i=10的时候退出循环 }
for循环的初始语句可以被忽略,但是初始语句后的分号必须要写。
例如:
func forLesson2() { i := 0 for ; i < 10; i++ { fmt.Println(i) } }
for循环的初始语句和结束语句都可以省略,等同于其他语言的while语句。
例如:
func forLexxon3() { i := 0 for i < 10 { fmt.Println(i) i++ } }
死循环
for { 循环体语句 }
for循环可以通过break
、goto
、return
、panic
语句强制退出循环。
for range
Go语言中可以使用for range
遍历数组、切片、字符串、map 及通道(channel)。 通过for range
遍历的返回值有以下规律:
- 数组、切片、字符串返回索引和值。
- map返回键和值。
- 通道(channel)只返回通道内的值
举个例子:
func forLexxon4() { arr := []string{"likuis","tom","fun"} for key,value := range arr { fmt.println(key,":",value) } }
switch case
使用switch
语句可方便地对大量的值进行条件判断。
func switchLesson1() { finger := 3 switch finger { case 1: fmt.Println("大拇指") case 2: fmt.Println("食指") case 3: fmt.Println("中指") case 4: fmt.Println("无名指") case 5: fmt.Println("小拇指") default: fmt.Println("无效的输入!") } }
Go语言规定每个switch
只能有一个default
分支.
一个分支可以有多个值,多个case值中间使用英文逗号分隔。
func switchLesson2() { switch n := 7; n { case 1, 3, 5, 7, 9: fmt.Println("奇数") case 2, 4, 6, 8: fmt.Println("偶数") default: fmt.Println(n) } }
分支还可以使用表达式,这时候switch语句后面不需要再跟判断变量。
例如:
func switchDemo4() { age := 30 switch { case age < 25: fmt.Println("好好学习吧") case age > 25 && age < 35: fmt.Println("好好工作吧") case age > 60: fmt.Println("好好享受吧") default: fmt.Println("活着真好") } }
fallthrough
语法可以执行满足条件的case的下一个case,是为了兼容C语言中的case设计的
func switchDemo5() { s := "a" switch { case s == "a": fmt.Println("a") fallthrough case s == "b": fmt.Println("b") case s == "c": fmt.Println("c") default: fmt.Println("...") } //输出: //a //b }
break
break
语句可以结束for
、switch
和select
的代码块。
func breakLesson1() { for i := 0; i < 10; i++ { if i == 2 { fmt.println(i) break } } //输出: //1 }
continue
continue
语句可以结束当前循环,开始下一次的循环迭代过程,仅限在for
循环内使用。
func continueLesson1() { for i := 0; i < 10; i++ { if i % 2 == 0 { fmt.println(i) continue } } //输出: //1 //3 //5 //7 //9 }
课后作业
1、打印99乘法表。
2、如果公鸡一只五文钱,母鸡一只三文钱,小鸡三只一文钱。现有一百文前,有几种购买的方案,分别求出需要公鸡、母鸡、小鸡各多少只。