我正在参加「掘金·启航计划」
1、if else(分支结构)
1.1、if条件判断基本写法
if
匹配的左括号{
必须与if和表达式
放在同一行,不然会编译错误。
if 表达式 {
分支1
} else if 表达式2 {
分支2
} else {
分支3
}
1.2、if条件判断特殊写法
可以在if表达式之前添加一个执行语句,在根据变量值进行判断,这个变量作用于只在该if块中有效。
if score:=65; score> 80 {
分支1
} else if score >60 {
分支2
} else {
分支3
}
2、for循环结构
2.1、基本格式
for 初始语句; 条件表达式; 结束语句 {
循环体语句
}
for循环的初始语句可以被忽略,但是初始语句的分好必须要写;
i := 0
for ; i<10; i++ {
}
for循环语句的初始语句和结束语句都可以省略;
i := 0
for i<10 {
i++
}
2.2、无线循环
for {
循环体语句
}
for循环可以通过 break
,goto
,return
,panic
强制退出循环。
3、for range(键值循环)
Go语言中可以使用for range
遍历数组、切片、字符串、map及通道(channel)。
for key, value := range map {
}
4、switch case
使用switch 可以方便的对大量的值进行条件判断
finger := 3
switch finger {
case 1:
case 2:
case 3, 4, 5: //一个分支可以有多个值
default :
//没有找到
}
每个switch
只能有一个default
分支。
一个分支可以有多个值,多个case值中间用英文逗号分隔。
分支还可以使用表达式,这时候switch语句后面不需要在跟判断变量。
age := 30
switch {
case age <18:
case age <60:
default:
}
fallthrough
语句可以执行满足条件的case的下一个case。
s := 10
switch {
case s == 10 :
fmt.Println(s)
fallthrough
case s > 5 :
fmt.Println("大于5")
default :
}
5、goto(跳转到指定标签)
goto语句通过标签进行代码间的无条件跳转,goto可以再快速跳出循环、避免重复退出上又一定帮助,可以简化双层嵌套的for循环。
func gotoDemo(){
for i := 0; i < 10; i++ {
for j := 0; j<10; j++ {
if j == 2 {
goto breakTag //设置退出标签
}
}
}
breakTag:
fmt.Println("结束for循环")
}
6、break(跳出循环)
break
语句可以结束for
、switch
和select
的代码块。
break
语句还可以在语句后面添加标签,表示退出某个标签对应的代码块,标签需求必须定义在对应的for
、switch
和select
的代码块上。
func breakDemo(){
BREAKDEMO:
for i := 0; i < 10; i++ {
for j :=0; j < 10; j++ {
break BREAKDEMO
}
}
}
7、continue(继续下次循环)
continue
语句可以结束当前循环,开始下一次的循环迭代过程,仅限在for
循环内使用。
在continue
语句添加标签时,表示开始标签对应的循环。
func continueDemo{
forloop1:
for i := 0; i<10; i++ {
for j :=0; j <10; j++ {
if i ==2 && j == 2 {
continue forloop1
}
}
}
}