go学习--控制语句

w007d · · 1028 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

 if a := 1; a > 1 { //定义变量a,a只在if语句中有效
  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尽可能到其后的代码


有疑问加站长微信联系(非本文作者)

本文来自:CSDN博客

感谢作者:w007d

查看原文:go学习--控制语句

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

1028 次点击  
加入收藏 微博
上一篇:go学习--数组
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传