8,流程控制
前面我们写的程序都是从第一行开始执行,一直执行到末尾,一行一行的顺序执行下来,这种执行结构叫顺序执行结构。 GO语言除了有顺序结构,还有选择结构,循环结构。
顺序结构:程序按顺序执行,不发生跳转。
选择结构:依据是否满足条件,有选择的执行相应功能。
循环结构:依据条件是否满足,循环多次执行某段代码。
下面先讲解选择结构:
8.1 选择结构
8.1.1 生活中的判断场景
选择结构我们也称为判断结构。生活中的关于判断的场景也非常多,如下:
- 如果跪键盘的时间大于60分钟,那么媳妇奖励我晚饭不用做了。
- 火车站安检:
8.1.2 开发中的判断场景
- 密码判断
- 重要日期判断
if今天是周六或者周日{
约妹子
}
if今天是情人节{
买玫瑰
}
if今天发工资{
先还信用卡的钱
if有剩余{
又可以happy了,O(∩_∩)O哈哈~
}else{
噢,no。。。还的等30天
}
}
小总结:
如果某些条件满足,才能做某件事情,而不满足时不允许做,这就是所谓的判断
8.2 if结构
在编程中实现选择判断结构就是用if
if结构基本语法:
if 条件判断{
代码语句
},
条件判断如果为真(true),那么就执行大括号中的语句,如果为假(false),就不执行大括号中的语句,(大家可以想一下,什么样的表达式返回的结果要么为true,要么为false),继续执行if结构后面的代码。
具有案例如下:
package main
import "fmt"
func main(){
var age int = 22
var b bool
b = age > 18
if b {
fmt.Println("我已经成年了!")
}
}
输出结果如下:
我已经成年了!
上面的程序可以进行简化如下:
package main
import "fmt"
func main(){
var age int = 22
if age > 18 {
fmt.Println("我已经成年了!")
}
}
输出结果如下:
我已经成年了!
条件不满足时执行:
import "fmt"
func main() {
var age int = 16
if age > 18 {
fmt.Println("我已经成年了!")
}
}
GO语言相比其它语言要灵活很多,下面我们看一下if的另外一种语法格式
package main
import "fmt"
func main() {
//if支持1个初始化语句,初始化语句的判断条件以分号隔开
if a := 10; a == 10 { //条件为真,指向{}语句
fmt.Println("a == 10")
}
}
输出如下:
a == 10
练习: 让用户输入用户名和密码,如果用户名为admin,密码为mypass,则提示登录成功
package main
import "fmt"
func main(){
var user string
var pwd string
fmt.Println("请输入用户名:")
fmt.Scanf("%s\n",&user)
fmt.Println("请输入密码:")
fmt.Scanf("%s",&pwd)
if user == "admin" && pwd == "mypass"{
fmt.Println("登陆成功")
}else{
fmt.Println("登陆失败")
}
}