go-if、for、switch、goto、break、continue

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

这里写图片描述



if语句:

package main
import "fmt"
func main() {
    //if后面没有括号
    if 1 < 2 {
        fmt.Println("1<2")
    }

    var a = 10
    //初始化表达式-a的作用范围只在if语句块
    if a := 1; a > 1 {
        fmt.Println("a > 1")
        fmt.Println(a)
    } else {
        fmt.Println("! a > 1")
        fmt.Println(a)
    }
    fmt.Println(a)
}

输出如下:

1<2
! a > 1
1
10



for语句:
这里写图片描述

package main

import "fmt"

func main() {
    //第1种形式无限循环
    a := 1
    for {
        a++
        if a > 3 {
            break
        }
        fmt.Println(a)
    }
    fmt.Println(a)

    //第2种形式
    for a <= 6 {
        a++
        fmt.Println(a)
    }

    //第3种形式

    for i := 0; i < 3; i++ {
        a++
        fmt.Println(a)
    }
    fmt.Println(a)
}
2
3
4
5
6
7
8
9
10
10



case语句:
这里写图片描述

package main

import "fmt"

func main() {
    a := 1
    switch a {
    case 0:
        fmt.Println("a==0")
    case 1:
        fmt.Println("a==1")
    default:
        fmt.Println("None")
    }

    //case表达式
    switch {
    case a >= 0:
        fmt.Println("a>=0")
    case a >= 1:
        fmt.Println("a>=1")
    default:
        fmt.Println("None")
    }

    //case表达式 fallthrough
    switch {
    case a >= 0:
        fmt.Println("a>=0")

    case a >= 1:
        fmt.Println("a>=1")
        fallthrough
    case a >= -1:
        fmt.Println("a>=-1")

    default:
        fmt.Println("None")
    }

    //初始化b只在case中有效范围
    switch b := 1; {
    case b >= 0:
        fmt.Println("b>=0")
        fallthrough
    case b >= 1:
        fmt.Println("b>=1")
        fallthrough
    case b >= -1:
        fmt.Println("b>=-1")

    default:
        fmt.Println("None")
    }
    // undefined: b--如果在case中定义,那么只在局部有效
    //fmt.Println(b)
}
a==1
a>=0
a>=0
b>=0
b>=1
b>=-1



goto、continue、break语句:
这里写图片描述

package main

import "fmt"

func main() {

    //goto直接调到LAbEL2
    for {
        for i := 0; i < 10; i++ {
            if i > 3 {
                goto LAbEL2
            }
        }
    }
    fmt.Println("PreLAbEL2")
LAbEL2:
    fmt.Println("LastLAbEL2")

    //break跳出和LAbEL1同一级别的循环,继续执行其他的
LAbEL1:
    for {
        for i := 0; i < 10; i++ {
            if i > 3 {
                break LAbEL1
            }
        }
    }
    fmt.Println("OK")

    //continue
LABEL3:

    for i := 0; i < 3; i++ {
        for {
            continue LABEL3
        }
    }
    fmt.Println("ok")
}

输出如下:

LastLAbEL2
OK
ok

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

本文来自:CSDN博客

感谢作者:u013210620

查看原文:go-if、for、switch、goto、break、continue

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

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