流程控制
程序的流程控制结构一共有三种:顺序结构,选择结构,循环结构
顺序结构:从上到下,逐行执行。默认的逻辑
选择结构:条件满足某些代码才会执行
- if
- switch
- select ,后面channel再讲
循环结构:条件满足某些代码会被反复执行0-N次.
- for
if语句
条件语句需要开发者通过指定一个或多个条件,并通过测试条件是否为true来决定是否执行指定语句,并在条件为false的情况在执行另外的语句
下图展示了程序条件语句的结构
if条件语句
package main
import "fmt"
func main() {
var a int = 15
if a > 20 {
fmt.Println("a>20")
}
if a > 10 {
fmt.Println("a>10")
}
//输出结果:a>10
}
if else 语句
package main
import "fmt"
func main() {
//定义一个分数为90
var score int
fmt.Println("请输入一个数:")
fmt.Scan(&score)
//设置score>=90 优秀
// score>=60 良好
// score <60 不及格
if score >= 90 {
fmt.Println("优秀")
} else if score >= 60 {
fmt.Println("良好")
} else {
fmt.Println("不及格")
}
}
if嵌套语句
package main
import "fmt"
// if嵌套
func main() {
// 验证密码
var x, y, pwd int
pwd = 20221112
fmt.Print("请输入密码:")
fmt.Scanln(&x)
if x == pwd {
fmt.Print("请再次输出密码:")
fmt.Scanln(&y)
if y == pwd {
fmt.Println("密码验证成功")
}
} else {
fmt.Println("密码验证失败")
}
}
switch语句
switch语句用于基于不同条件执行不同动作,每一个case分支都是唯一的,从上至下逐一测试,直到匹配为止。
switch语句执行的过程从上至下,直到找到匹配项,匹配项后面也不需要再加break。switch 默认情况下case最后自带 break语句
示例一:
package main
import "fmt"
func main() {
var score int = 66
switch score {
case 90:
fmt.Println("A")
case 80:
fmt.Println("B")
case 70, 60, 50:
fmt.Println("C")
// 当所有条件不满足时,执行default语句
default:
fmt.Println("D")
}
//打印输出结果:D
}
这里也可以按照条件输入判断
示例二:
package main
import "fmt"
func main() {
var score int
fmt.Printf("请输入一个数:")
fmt.Scan(&score)
switch {
case score >= 90:
fmt.Println("您的成绩为优秀")
case score >= 60 && score < 90:
fmt.Println("您的成绩为良好")
case score < 60 && score > 0:
fmt.Println("您的成绩为不及格")
// 当所有条件不满足时,执行default语句
default:
fmt.Println("查询不到您的成绩")
}
}
fallthrough 贯穿;直通
switch默认情况下匹配成功后就不会执行其他case,如果我们需要执行后面的case,可以使用fallthrough穿透case使用fallthrough 会强制执行后面的case语句,fallthrough 不会判断下一条case的表达式结果是否为true。
当进行匹配选择机制后就不会执行后面的语句
如果想要无视任何条件直接执行下一条的语句就可以使用fallthrough
package main
import "fmt"
func main() {
var a bool = false
switch a {
case false:
fmt.Println("1,case条件为false")
fallthrough
case true:
fmt.Println("2,case条件为true")
}
}
暴力穿透很容易影响我们的程序,我们可以使用break进行终止
package main
import "fmt"
func main() {
var a bool = false
switch a {
case false:
fmt.Println("1,case条件为false")
fallthrough
case true:
if a == false {
break //终止穿透
}
fmt.Println("2,case条件为true")
}
//输出结果:1,case条件为false
}
for语句
在不少实际问题中有许多具有规律性的重复操作,因此在程序中就需要重复执行某些语句。
for循环是一个循环控制结构,可以执行指定次数的循环。
package main
import "fmt"
func main() {
// for 条件的起始值; 循环条件; 控制变量自增或者自减
// 无限循环
//i := 1
//for {
// fmt.Println(i)
// i++
//}
//计算1到10的数字和
sum := 0
for i := 1; i <= 10; i++ {
sum += i
}
fmt.Println(sum)
}
练习一
package main
import "fmt"
/* 打印一个方阵
* * * * *
* * * * *
* * * * *
* * * * *
* * * * *
*/
func main() {
for j := 0; j < 5; j++ {
for i := 0; i < 5; i++ {
fmt.Print("* ")
}
fmt.Println()
}
}
练习二
package main
import "fmt"
func main() {
//打印9列
for j := 1; j <= 9; j++ {
//打印9行 i <= j逐级递减
for i := 1; i <= j; i++ {
//Printf字符编排 一个%d对应一个值
fmt.Printf("%d*%d=%d ", i, j, i*j)
}
//输出完每一行换行
fmt.Println()
}
}
break 结束当前整个循环
package main
import "fmt"
func main() {
//break结束当前循环
for i := 0; i < 9; i++ {
if i == 5 {
break
}
fmt.Println(i)
}
}
continue 结束当次循环
package main
import "fmt"
func main() {
//continue 结束当次循环
fmt.Println("=======================")
for i := 0; i < 9; i++ {
if i == 5 {
continue
}
fmt.Println(i)
}
}
标签:case,语句,fmt,笔记,Println,score,Go,狂神,main
From: https://www.cnblogs.com/DuPengBG/p/16883982.html