流程控制
一 if条件语句
1 if单分支
if条件表达式{ //条件表达式不建议写括号 if后一定要有空格与条件表达式分开
逻辑代码 /大括号一定要写不能省略
}
例如
var age int
fmt.Println("请输入学生1年龄:")
fmt.Scanln(&age)
fmt.Println("学生1年龄是: ",age)
if age>18{
fmt.Println("nihao")
}
2 if双分支
if条件表达式{
}else{
}
例如
var age int
fmt.Println("请输入学生1年龄:")
fmt.Scanln(&age)
fmt.Println("学生1年龄是: ",age)
if age>18{
fmt.Println("成年啦")
}
else{
fmt.Println("未成年")
}
注意: else与}要在同一行否则会报错 如下
if age>18{
fmt.Println("成年啦")
}
else{
fmt.Println("未成年")
}
3 if多分支
if条件表达式{
}else if条件表达式{
}else{
}
建议: else虽然可以省略 但是建议else存在保证输出效果的正确性
二 switch条件表达式
switch 表达式{
case 值1 值2.....:
代码块
case 值1 值2....:
代码块
.
.
.
default:
代码块
}
例如
var score int
fmt.Println("请输入学生1分数:")
fmt.Scanln(&score)
switch score/10{
case 10:
fmt.Println("A级")
case 9:
fmt.Println("B级")
case 8:
fmt.Println("C级")
case 7:
fmt.Println("D级")
default:
fmt.Println("E级")
}
switch细节:1 switch后是一个表达式(即:常量值 变量 一个有返回值的函数都可以)
2 case后面的表达式如果是常量 则要求不能重复
3 case后面可以带有多个值
4 case 后面不能使用break
5 default语句不是必须的 且位置是随意的
6 switch后面不带表达式 则当作if语句使用 (golang独有)
var score int
fmt.Println("请输入学生1分数:")
fmt.Scanln(&score)
var grade int = score/10
switch {
case grade==10:
fmt.Println("A级")
case grade==9:
fmt.Println("B级")
case grade==8:
fmt.Println("C级")
default:
fmt.Println("E级")
case grade==7:
fmt.Println("D级")
}
7 switch穿透 如果在case语句中‘增加fallthrough 则会执行下一个case
var score int
fmt.Println("请输入学生1分数:")
fmt.Scanln(&score)
var grade int = score/10
switch {
case grade==10:
fmt.Println("A级")
case grade==9:
fmt.Println("B级")
case grade==8:
fmt.Println("C级")
case grade==7:
fmt.Println("D级")
fallthrough
default:
fmt.Println("E级")
}
3 for循环
for 初始表达式; 布尔表达式;迭代因子{
循环体;
}
var sum int =0
for i:=1;i<=5;i++ {
sum+=i
}
fmt.Println(sum)
for range(go语言独有的迭代结构) 可以遍历数组 切片 字符串 map及通道
for key, val := range string {
}
例如
var s string = "hello"
for i , value := range s {
fmt.Printf("下标索引是%d 值是%c\n",i,value)
}