go学习--控制语句
admin
2023-07-29 07:01:58
0
//定义变量a,a只在if语句中有效
if a : = 1; a > 1 { 
    fmt.Println("a > 1")
}
else {
    if a : = 10; a > 1 {
        fmt.Println(a) //结果为10,和C语言变量作用域一致
    }
    else {
        fmt.Println(a)
    }
}

for的三种形式
func main() {
count: = 3
    for i : = 0; i < count; i++ { //经典形式
        fmt.Println(i)
    }

   i: = 0
       for i < count{ //类似c中的while,只带终止条件
           fmt.Println(i)
           i++
       }

           i = 0
           for { //死循环
               if i < count{
                   fmt.Println(i)
                   i++
               }
               else {
                   break
               }
           }
}

switch用法:
func main() {
count: = 1
    switch count{
    case 1:
        fmt.Println(count)
            fallthrough            //继续检查下一个case,屏蔽break功能
    case 2:
        fmt.Println(count)    //case自带break功能
    case 3:
        fmt.Println(count)
    default:
        fmt.Println(count)
    }
}

func main() {
count: = 1
    switch { //switch不带常量,和c中if……else if……esle作用一致
    case count == 1: //case需要使用逻辑表达式
        fmt.Println(count)
            fallthrough //继续检查下一个case,屏蔽break功能
    case count <= 1:
        fmt.Println(count) //case自带break功能
    case count >= 1:
        fmt.Println(count)
    default:
        fmt.Println(count)
    }
}

break和标签
func main() {
J:
    for j : = 0; j < 5; j++ {
        for i : = 0; i < 10; i++ {
            if i > 6 {
                break J //标签J位于第一层for循环,break J相当于跳出第一层for循环
            }
            fmt.Println(i)
        }
    }
}

continue与标签
func main() {
J:
    for j : = 0; j < 5; j++ {
        fmt.Println("--------")
            for i : = 0; i < 10; i++ {
                if i > 6 {
                    continue J //标签J位于第一层for循环,continue J相当于跳过其之后的语句并且跳转到第一层for继续执行第一层循环(第一层循环条件j的值仍然递增)
                }
                fmt.Println(i)
            }
        fmt.Println("+++++++")    //continue的时候第一层循环体内的语言也不会被执行,注意与C的区别
    }
}

goto与标签
func main() {
J:
    for j : = 0; j < 5; j++ {
        fmt.Println("--------")
            for i : = 0; i < 10; i++ {
                if i > 6 {
                    goto J //goto到第一层for循环,j的值被重新赋值为0,此时循环为无限循环,与continue的区别在于:continue继续执行循环,goto重新开始循环
                }
                fmt.Println(i)
            }
        fmt.Println("+++++++")
    }
}

使用goto的时候仍然要注意,避免死循环,goto尽可能到其后的代码


相关内容

热门资讯

装修步骤先后顺序(装修的顺序是... 摘要:顺序一、先需求后设计,平面布局是第一步,也是室内设计最关键的一步,它直接决定了你入住后的生活舒...
万和热水器锁定了怎么解锁 万和热水器锁定了怎么解锁1、可以长按升温间或降温间3到5秒。2、可以长按开机键3到5秒。3、可以参考...
万和燃气热水器锁住要怎么才可以... 万和燃气热水器锁住要怎么才可以解锁啊?需要将热水器关闭电源然后重新开启,再长按住升温键或者是降温键五...
万和热水器怎么解锁 万和热水器怎么解锁1、长按锁键3秒以上,一般为5秒表示可以打开。当热水器启动工作时不可以对温度再进行...
万和热水器如何解锁 万和热水器如何解锁出现锁定的时候先不要着急,可以找出说明书仔细的查看,一般来说都有方法,或者可以直接...
多名中国公民涉案被捕,中使馆提... 近期,越南警方开展打击电诈专项行动,捣毁多个电诈窝点,有多名我公民因涉案被捕。我馆亦处理多起领保案件...
王健林,再卖一座万达广场 万达商业推进资产处置工作,有了新进展。记者获悉,湛江开发区万达广场投资有限公司于近日完成工商股权变更...
美媒曝:英国试图回欧盟参加部分... 美国彭博社7月3日报道称,随着双方试图重塑英国脱欧后的关系,英国正争取参与部分欧盟重要会议并在会上发...
18年前签的印度项目,遭拖欠上... 记者|文多编辑|何小桃 魏官红 易启江 校对|张益铭上海电气(601727.SH,股价6.96元,市...
朋友追忆西安赛格坠亡者生前细节 7月1日,西安赛格国际购物中心发生一起坠楼事件。坠楼者为陕西利和商贸有限公司负责人严某,该公司在赛格...