GO语言入门 - (四)控制结构
进阶,进阶,向控制接口出发。。。流程控制语句
流程控制语句用于控制程序的执行顺序,这样程序就具备了逻辑结构。
1. if 条件语句 根据布尔值的表达式来决定选择哪个分支执行:
如果表达式的值为true,则if分支被执行;
如果表达式的值为false,则else分支被执行;
示例:
package mainimport "fmt"func main (){
// 将10赋值给i
i := 10
// 需要注意的是:
// if后面的条件表达式不需要使用()
// 每个条件分支(if或者else)中的大括号是必须的
// if紧跟的大括号{不能独占一行,else前的大括号}也不能独占一行
// 如果你的条件分支不止两个,那么你还可以在if·····else条件语句中增加多个else if
if i > 10 {
fmt.Println("i大于10")
} else if i == 10{
fmt.Println("i等于10")
} else {
fmt.Println("i小于10")
}
}
输出结果为:
![GO语言入门 - (四)控制结构](https://img.it610.com/image/info9/5ef9268e996c4a9faee90b899ab18611.jpg)
文章图片
划重点:
和其他的编程语言不同的是,Go语言中的if语句中可以有一个简单的表达式语句,并将该语句与条件语句用分号分开。
改造示例如下:
package mainimport "fmt"func main() {
// 直接将i的赋值放到if后面,并与条件语句用分号隔开
// 这里需要注意的是,在if后面声明的变量只能在if·····else条件语句范围内使用
if i := 10;
i > 10 {
fmt.Println("i大于10")
} else if i == 10 {
fmt.Println("i等于10")
} else {
fmt.Println("i小于10")
}
}
输出结果为:
![GO语言入门 - (四)控制结构](https://img.it610.com/image/info9/1bf6d29e4fe047d4b9fb30f5c5cfb048.jpg)
文章图片
2. switch 选择语句 switch的case从上到下注意进行判断
一旦满足条件,立即执行对应的分支并返回
其余分支不再做判断
改造示例如下:
package mainimport "fmt"func main() {
switch i := 10;
{ // switch后面也可以跟简单的表达式语句,用分号隔开
case i > 10: // case条件后面用冒号,并且不用{}
fmt.Println("i大于10")
case i == 10: // case自带break,不需要再有结束switch的操作
fmt.Println("i等于10")
default: // 这里相当于if中的else
fmt.Println("i小于10")
}
}
输出结果为:
![GO语言入门 - (四)控制结构](https://img.it610.com/image/info9/e4eb64744f944b298f0c234a4cc603da.jpg)
文章图片
2.1 如果需要switch语句在执行满足条件的case之后还需要执行下一个case的话,就需要用fallthrough关键字 示例如下:
package mainimport "fmt"func main() {
switch i := 10;
{
case i == 10:
fmt.Println("i等于10")
fallthrough // 这里没有break跳出switch,进行下一个case操作
case i == 10:
fmt.Println("i等于10,这是第二个case")
default:
fmt.Println("i小于10")
}
}
输出结果为:
![GO语言入门 - (四)控制结构](https://img.it610.com/image/info9/77af5069a15d4b4983711b6214f3f1ec.png)
文章图片
2.2 如果switch后面跟着表达式的话,后面的case的值就需要和这个表达式的结果类型相同,如果不同就会报错。 示例如下:
package mainimport "fmt"func main() {
switch i := 1;
i{
case 1:
fmt.Println("i等于10")
fallthrough
case 2:
fmt.Println("i等于10,这是第二个case")
default:
fmt.Println("i小于10")
}
}
输出结果为:
![GO语言入门 - (四)控制结构](https://img.it610.com/image/info9/71ab8f9a70db4a3885246cef9d4fafab.png)
文章图片
2.3 也可以直接将表达式放到switch之后 示例如下:
package mainimport "fmt"func main() {
switch 2 > 1 {
case true:
fmt.Println("正确")
case false:
fmt.Println("错误")
default:
fmt.Println("不知道")
}
}
输出结果为:
![GO语言入门 - (四)控制结构](https://img.it610.com/image/info9/71ab8f9a70db4a3885246cef9d4fafab.png)
文章图片
3. for 循环语句 计算1到100的数字之和时
如果用代码将一个个数字加起来,会非常复杂,可读性也不好
for循环有三部分组成
- 是一个简单语句,一般用于for循环的初始化
- for循环的条件,表示for循环什么时候结束
- 更新语句,一般用于更新循环的变量
package mainimport "fmt"func main() {
sum := 0
for i:=1;
i<=100;
i++ {
sum += i
}
fmt.Println("从1加到100的值为:", sum)
}
【GO语言入门 - (四)控制结构】输出结果为:
![GO语言入门 - (四)控制结构](https://img.it610.com/image/info9/e5eabb18d23f451d9cb23f6855336edc.png)
文章图片
3.1 Go语言中没有while循环,可以通过改造for循环来实现 代码如下:
package mainimport "fmt"func main() {
sum := 0
i := 1
for i <= 100 {
sum += i
i++
}
fmt.Println("从1加到100的值为:", sum)
}
输出结果为:
![GO语言入门 - (四)控制结构](https://img.it610.com/image/info9/8f8ce062c34048eebdb511e9caa5cd43.png)
文章图片
3.2 跳出循环 continue可以跳出本次循环,继续执行下一个循环
break可以跳出整个for循环,哪怕for循环没有执行完,也会强制终止
使用for无线循环,在for循环里面用条件语句加break来跳出循环
改造代码为:
package mainimport "fmt"func main() {
sum := 0
i := 1
for {
sum += i
i++
if i > 100 {
break
}
}
fmt.Println("从1加到100的值为:", sum)
}
输出结果为:
![GO语言入门 - (四)控制结构](https://img.it610.com/image/info9/d6b4ba79357a428b9af3751bd25a616b.png)
文章图片
个人博客地址
http://www.zhouzhaodong.xyz/
推荐阅读
- 跌跌撞撞奔向你|跌跌撞撞奔向你 第四章(你补英语,我补物理)
- 奔向你的城市
- 四首关于旅行记忆的外文歌曲
- CET4听力微技能一
- 【生信技能树】R语言练习题|【生信技能树】R语言练习题 - 中级
- 亲子日记第186篇,2018、7、26、星期四、晴
- 一起来学习C语言的字符串转换函数
- C语言字符函数中的isalnum()和iscntrl()你都知道吗
- C语言浮点函数中的modf和fmod详解
- C语言中的时间函数clock()和time()你都了解吗