在学习完变量数据与类型之后,我开始学习了Go语言相关运算符以及流程控制,由于Go语言中的运算符与c语言等类似,所以本文省略,直接描述Go需要的流程控制
流程控制
一、if语句
(1)if单分支 if后面的表达式返回结果为true或者false,true执行,false不执行。
但是在这里if语句有所不同,在c语言等编程语言中,当if后面只有一条语句时,{}可以省略,但在Go语言中,无论几条语句,都不能省略。
if后面的条件表达式左右的()是建议省略的
if后面可以并列加入变量的定义
if count:=20;count<25
(2)if双分支 以下才是if语句正确表达式,else需要接在if表达式的大括号的后面,如果换行,则会报错 g1
}else{
逻辑代码2
}
(3)if多分支
if 条件表达式1{
逻辑代码1
}else if 条件表达式2{
逻辑代码2
}
......
else{
逻辑代码n
}
二、switch分支
switch 表达式{
case 值1,值2,......
语句块1
}
...
default:
语句块
}
1.switch后是一个表达式
2.case后面各个值的类型数据,必须和switch表达式数据类型一致
3.case后面可以带多个表达式,使用逗号间隔,比如case表达式1,表达式2
4.case后面不需要带break,程序匹配到一个case后就会执行对应的代码块,然后退出switch,如果一个都匹配不到,则执行default
5.default语句不是必须的
6.switch后可以不带表达式,当成if分支来用
7.switch穿透,利用fallthrough关键字,如果在case语句块后增加fallthrough,则会执行下一个case,也叫switch穿透 package main
`import "fmt"
func main(){
//实现功能:根据给出的学生分数,判断学生的等级:
// >=90 -----A
// >=80 -----B
// >=70 -----C
// >=60 -----D
// <60 -----E
//给出一个学生分数:
var score int = 187
//根据分数判断等级:
switch score/10 {
case 10 :
fmt.Println("您的等级为A级")
case 9 :
fmt.Println("您的等级为A级")
case 8 :
fmt.Println("您的等级为B级")
case 7 :
fmt.Println("您的等级为C级")
case 6 :
fmt.Println("您的等级为D级")
case 5 :
fmt.Println("您的等级为E级")
case 4 :
fmt.Println("您的等级为E级")
case 3 :
fmt.Println("您的等级为E级")
case 2 :
fmt.Println("您的等级为E级")
case 1 :
fmt.Println("您的等级为E级")
case 0 :
fmt.Println("您的等级为E级")
default:
fmt.Println("您的成绩有误")
}
} `
三、for循环
Go语言不像其他语言,其他需要可能还会有while和do while等循环,但在go语言中,只有for循环
for 初始表达式;布尔表达式(条件判断);迭代因子
另外,在for循环中的初始表达式不能用var来定义,但是可以用:=这种形式
即 for i:=1;i<=5;i++这种形式是正确的
函数
一、函数的基本语法
func 函数名(形参列表)(返回值类型列表)
{
执行语句..
return + 返回值列表
}
函数名应该见名知意,形参列表可以有多个参数,而返回值列表如果返回类型只有一个的话,那么括号可以省略不写
如果有返回值不想接受的话,也可以用下划线进行忽略。