流程语句
流程语句
1. 条件语句
//在if之后条件语句之前可以添加变量初始化语句,用;号隔离
if <条件语句> { //条件语句不需要用括号括起来,花括号必须存在
//语句体
}else{
//语句体
}
//在有返回值的函数中,不允许将最后的return语句放在if...else...的结构中,否则会编译失败
//例如以下为错误范例
func example(x int) int{
if x==0{
return 5
}else{
return x //最后的return语句放在if-else结构中,所以编译失败
}
}
2. 选择语句
//1、根据条件不同,对应不同的执行体
switch i{
case 0:
fmt.Printf("0")
case 1: //满足条件就会退出,只有添加fallthrough才会继续执行下一个case语句
fmt.Prinntf("1")
case 2,3,1: //单个case可以出现多个选项
fmt.Printf("2,3,1")
default: //当都不满足以上条件时,执行default语句
fmt.Printf("Default")
}
//2、该模式等价于多个if-else的功能
switch {
case <条件表达式1>:
语句体1
case <条件表达式2>:
语句体2
}
3. 循环语句
//1、Go只支持for关键字,不支持while,do-while结构
for i,j:=0,1;i<10;i++{ //支持多个赋值
//语句体
}
//2、无限循环
sum:=1
for{ //不接条件表达式表示无限循环
sum++
if sum > 100{
break //满足条件跳出循环
}
}
//3、支持continue和break,break可以指定中断哪个循环,break JLoop(标签)
for j:=0;j<5;j++{
for i:=0;i<10;i++{
if i>5{
break JLoop //终止JLoop标签处的外层循环
}
fmt.Println(i)
}
JLoop: //标签处
...
4. 跳转语句
//关键字goto支持跳转
func myfunc(){
i:=0
HERE: //定义标签处
fmt.Println(i)
i++
if i<10{
goto HERE //跳转到标签处
}
}
Feedback
Was this page helpful?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.
最后修改 May 10, 2023: add code (7f583d9)