go流程控制语句

发布时间 2023-03-30 23:15:32作者: yangphp

前言:

goif elseswitchfor go的使用

正文:

ifelse 流程控制

语法:

if 表达式 {

//code1

}else if 表达式{

//code2

}else{

//code3

}

 

if条件判断语句中不需要括号

代码示例1if else

isLogin := true

if isLogin {

fmt.Println("login success ")

} else {

fmt.Println("login error ")

}

代码示例2if else

sex := ""

if sex == "" {

fmt.Println(" 男厕所 ")

} else {

fmt.Println(" 女厕所 ")

}

代码示例3if 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关键字,

不支持whiledo-while

语法:

for expression1;expression2;expression3{

//...

}

expression1 变量声明 循环开始之前调用  

expression2 条件判断 循环一次判断,一次。先判断,在循环

expression3 变量处理 每次循环结束调用  ,可以被省略,效果类似while

 

示例1:打印110

for i := 1; i <= 10; i++ {

fmt.Println(i)

}

 

示例2:求1100的和 方式1

sum := 0

for i := 1; i <= 100; i++ {

sum += i

}

fmt.Println(sum)

 

示例3:求1100的和 方式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("登录成功")  //输出了

 

完结