AI智能
改变未来

Go的100天之旅-07条件和循环

文章目录

  • 条件语句
  • “if“条件语句
  • “switch“条件语句
  • 循环语句
    • “for“循环
    • “goto“语句

    条件语句

    Go

    的条件语句和其它语言类似,主要是不支持三目运算符所以

    ?:

    这种条件判断是不支持的。

    Go

    提供的条件判断语句主要有

    if

    还有

    switch

    这两种形式下面是

    if

    条件语句

    if

    的几种写法,基本上和其它语言是一致的

    if 条件 {} else {}if 条件 {} else if 条件 {} else {}

    switch

    条件语句

    switch

    和其它语言类似,都是类似下面的写法:

    switch var1 {case val1:...case val2:...default:...}

    有几点差异的地方是,默认不需要

    break

    case

    被匹配上了之后,就会进入分支,后面的

    case

    都不会匹配和执行。但是

    fallthrough

    可以强制执行下一条

    case

    ,例如下面的代码:

    package mainfunc main() {var a bool = trueswitch a {case true:println(\"case true 1\")fallthroughcase false:println(\"case false 2\")case true:println(\"case true 3\")}}

    输出为:

    case true 1case false 2

    case

    后面可以是任何类型的变量,常量,或者表达式,但是

    case

    之间的类型必须保存一致。

    循环语句

    Go

    是没有

    while

    的,它提供了两种可以进行循环的操作

    for

    goto

    for

    循环

    for

    的操作主要如下:

    for 初始化;条件;执行 {}for 条件 {}for {} //无限循环,可以通过break跳出

    for

    可以通过

    continue

    执行下条循环,也可以

    break

    跳出循环。和其它语言

    for

    还有一个差异就是

    for range

    可以对

    数组 Slice Map

    进行遍历:

    package mainfunc main() {a := [...]int{1, 2, 3}for i, v := range a {println(i, v)}}//输出0 11 22 3

    这里

    i

    等于值

    v

    在数组中的下标。

    goto

    语句

    Go

    goto

    保留了下来,它不仅仅用于循环,可以跳转到一段有标签的代码块

    goto label


    下面是一个简单的使用:

    package mainfunc main() {var a int = 0loop:if a < 5 {a++println(a)goto loop}}

    输出:

    12345

    goto

    是一个比较有争议的操作,反对使用它的人认为它会让代码逻辑变得复杂,代码的可读性降低。支持的人认为它可以使用灵活,更加容易扩展,比如出现了异常或者需要统一处理逻辑,可以用

    goto

    直接进行跳转。

    赞(0) 打赏
    未经允许不得转载:爱站程序员基地 » Go的100天之旅-07条件和循环