GO学习笔记(条件判断,循环,分支,label)

今天学习了go语言的条件判断(if-else), 循环(for go 里面没有while 循环), 分支(switch-case), 代码块(label)

条件判断 if-else

go 里面的条件判断和其他语言的区别是go的条件判断里面条件表达式是没有括号的, if 条件的左边花括号 必须和 if 在同一行,不可换到下一行
因此如果写成下面这种是错误的

package main
import (
    "fmt"
)
func main(){
  x := 10
 // 这种方式是错误的 x > 10 这个条件表达式 不能用括号
  if (x > 10) {
    fmt.Println(x)
}
// 这种方式也是错误的,左边的花括号必须和 if 语句在同一行

if x > 10 
{
  fmt.Println(x)
}
}

循环(for) go 里面没有while 循环

如果是写其他语言的while true 死循环 使用如下方式

for {
    // 这种方式就是死循环
}

常规定义的方式和其他语言差不多都是使用i=0; i<n; i++这种方式, 不同的是 go 的for 循环表达式也没有括号 如下

for i := 0; i<=10; i ++ {
    // go for 循环
}

其他方式

i := 0

for i  < 100 {
     i += 1
}

分支(switch-case-default)

go switch 语句和其他语言的switch 语句差不多 定义的方式如下

switch i {

case 1:
    fmt.Println("1")

case 2:
    fmt.Println("2")

default:
    fmt.Println("default")
}

switch-case 里面 还有个 fallthrough 关键字这是我之前接触是其他编程语言里面没有遇到过的,他的用法是,当某个case 满足条件之后 进入了该case 但是还想再尝试是否满足其他case 就可以使用 fallthrough

用法如下:

i := 10

switch {

case i > 1:
    fmt.Println("1")
    fallthrough

case i > 2:
    fmt.Println("2")
    fallthrough

default:
    fmt.Println("default")
}

label(标签/代码块)

label 的使用场景一般是当你有多个for 循环嵌套的时候,如果你想跳出所有的循环,就可以使用label

如下

func lebels() {

LEBEL:
    for {
        for i := 0; i <= 10; i++ {
            if i > 5 {
                // 外层循环是死循环,使用 lebel 时 可以跳转到lebel层,从而跳出死循环, 直接跳到下面的OK
                break LEBEL
            }
        }

    }
    fmt.Println("OK")
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值