Golang基础——流程控制语句
@([07] golang)[Go总结]
[TOC]
for循环语句
- go只有for关键字,没有while和do-while
- for后面的条件表达式不需要用圆括号
()
括起来。 - 左花括号与for同行
判断语句
判断语句不需要加()
必须加大括号,且左大括号必须与表达式同行
if语句
语法:
if 布尔表达式 {
当表达式为true时,执行的语句
}
流程图:
st=>start: Start
e=>end
op=>operation: 条件为真执行的操作
cond=>condition: 判断条件是否为真?
st->cond
cond(yes)->op
cond(no)->e
op->e
代码实例
package main
import "fmt"
func main() {
a := 10
if a < 100 {
fmt.Println(a, "小于100")
}
}
输出:10小于100
if-else语句
语法
if 布尔表达式{
/* 在布尔表达式为 true 时执行 */
}
else{
/* 在布尔表达式为 false 时执行 */
}
流程图
st=>start: Start
e=>end
op1=>operation: 条件为真执行的操作
op2=>operation: 条件为假时执行的操作
cond=>condition: 判断条件是否为真?
st->cond
cond(yes)->op1
cond(no)->op2
op2->e
op1->e
if-else if-else多重判断
语法
if 布尔表达式1{
/* 在布尔表达式1为 true 时执行 */
}
esle if 布尔表达式2{
/* 在布尔表达式2为 true 时执行 */
}
else{
/* 在布尔表达式为 false 时执行 */
}
流程图
st=>start: Start
e=>end
op1=>operation: 表达式1为真时执行的操作
op2=>operation: 表达式2为真时执行的操作
op3=>operation: 其他情况执行的操作
cond1=>condition: 表达式1是否为真?
cond2=>condition: 表达式2是否为真?
st->cond1
cond1(yes)->op1
cond1(no)->cond2
cond2(yes)->op2
cond2(no)->op3
op1->e
op2->e
op3->e
在if之后,条件语句之前,可以添加变量初始化语句,使用
;
分割。
如果函数有返回值,最终的return语句不允许包含在if...else...中,会导致编译错误。function ends without a return statement
错误演示:
func example(x int) int {
if x > 0 {
return 5
} else {
return x
}
}
正确做法
func example(x int) int {
if x > 0 {
return 5
} else {
fmt.Printf("%d ", x)
}
return x
}
switch语句
语法
switch var1 {
case val1:
...
case val2:
...
default:
...
}