go流程控制语句
前言:
go中if else,switch, for ,go的使用
正文:
ifelse 流程控制
语法:
if 表达式 {
//code1
}else if 表达式{
//code2
}else{
//code3
}
if条件判断语句中不需要括号
代码示例1: if else
isLogin := true
if isLogin {
fmt.Println("login success ")
} else {
fmt.Println("login error ")
}
代码示例2: if else
sex := "男"
if sex == "男" {
fmt.Println(" 男厕所 ")
} else {
fmt.Println(" 女厕所 ")
}
代码示例3:if ,else if , else
score := 66
if score < 60 {
fmt.Println(" 不及格 ")
} else if score >= 60 && score < 80 {
fmt.Println(" 良好 ")
} else if score >= 80 && score <= 100 {
fmt.Println("优秀")
} else {
fmt.Println("兄弟 搞错了吧")
}
switch 流程控制
语法如下:不需要break
switch 变量{
case 表达式/值
//代码
case 表达式/值
//代码
default :
//代码
}
fallthrough 穿透,表示进入到当前条件后,进入下一条件继续执行
示例1:变量为值
status := 3
switch status {
case 1:
fmt.Println("开灯")
case 2:
fmt.Println("关灯")
default:
fmt.Println("不晓得了...")
}
示例2:变量为表达式
score := 66
switch {
case score < 60:
fmt.Println("不及格")
case score >= 60 && score < 80:
fmt.Println("良好")
case score >= 80 && score <= 100:
fmt.Println("优秀")
default:
fmt.Println("兄弟 搞错了吧")
}
for循环控制语句:
go语言中循环语句只支持for关键字,
不支持while和do-while
语法:
for expression1;expression2;expression3{
//...
}
expression1 变量声明 循环开始之前调用
expression2 条件判断 循环一次判断,一次。先判断,在循环
expression3 变量处理 每次循环结束调用 ,可以被省略,效果类似while
示例1:打印1到10
for i := 1; i <= 10; i++ {
fmt.Println(i)
}
示例2:求1到100的和 方式1
sum := 0
for i := 1; i <= 100; i++ {
sum += i
}
fmt.Println(sum)
示例3:求1到100的和 方式2
i := 1
sum := 0
for i <= 100 {
sum += i
i++
}
fmt.Println(sum)
第一个条件可以被省略
第三个条件也可以被省略
流程控制:break continue
break 跳出循环
continue 忽略当前循环,进入下次循环
break示例:
for i := 1; i <= 10; i++ {
if i == 5 {
break
}
fmt.Println(i) //输出 1,2,3,4
}
continue示例:
for i := 1; i <= 10; i++ {
if i == 5 {
continue
}
fmt.Println(i) //输出 1,2,3,4,6,7,8,9,10
}
for range 示例: 经常用于循环遍历数组
strs := []string{"1111","2222","3333","4444","5555"}
for k,v := range strs{
println(k,v)
}
流程控制 goto
goto 语句通过标签进行代码间的无条件跳转
goto示例1:
islogin := true
if islogin {
goto loginInfo #直接跳到 loginInfo: 执行
}
fmt.Println("hello world") //没有输出该行
loginInfo:
fmt.Println("登录成功") //输出了
完结
但行好事,莫问前程!
本文来自博客园,作者:yangphp,转载请注明原文链接:https://www.cnblogs.com/ypeih/p/17274739.html