欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

GO基础之流程控制语句

程序员文章站 2022-03-20 17:05:53
switch 是一个条件语句,用于将表达式的值与可能匹配的选项列表进行比较,并根据匹配情况执行相应的代码块。它可以被认为是替代多个 if else 子句的常用方式。 ......

一、if分支语句

if 布尔表达式 1 {
   /* 在布尔表达式 1 为 true 时执行 */
}
if a := 2; a%2 == 0 {
   fmt.println("偶数")
}
 if 布尔表达式 1 {
    /* 在布尔表达式 1 为 true 时执行 */
 }else{
  /* todo else */
}
    if a := 2; a%2 == 0 {
        fmt.println("偶数")
    } else {
        fmt.println("奇数")
    }
if 布尔表达式 1 {
      /* 在布尔表达式 1 为 true 时执行 */
 }else if 布尔表达式 2{

  /* 在布尔表达式 1 为 true 时执行 */
}else{  /* todo else */  }
func main() {
    var b = 70
    if b >= 90 {
        fmt.println("优秀")
    } else if b >= 80 {
        fmt.println("良好")
    } else {
        fmt.println("及格")
    }
}

 二、for循环语句

func main() {
    //=======格式1===========
    for i := 0; i < 10; i++ {
        fmt.println("i=", i)
    }
    //=======格式2===========
    a := 2
    for ; a < 5; a++ {
        fmt.println("a=", a)
    }
    //=======格式3(死循环)====
    b := 10
    for {
        if b == 5 {
            break
        }
        b--
        fmt.println("b=", b)
    }

}

break 语句用于在完成正常执行之前,突然终止 for 循环。

func main() {
    //=======格式1===========
    for i := 0; i < 10; i++ {
        if i >= 5 {
            break
        }
        fmt.println("i=", i)
    }
}
输出:i= 0;i= 1;i= 2;i= 3;i= 4

continue 语句用来跳出 for 循环中当前循环。在 continue 语句后的所有的 for 循环语句都不会在本次循环中执行。循环体会在一下次循环中继续执行

func main() {
    for i := 0; i < 5; i++ {
        if i == 3 {
            continue
        }
        fmt.println("i=", i)
    }
}
输出:i= 0;i= 1;i= 2;i= 4


goto 语句类似 continue  终止当前循环,进入指定的位置(loop)继续运行
func main() {
    num := 0
loop:
    for num < 5 {
        num++
        if num%4 == 0 {
            goto loop
        }
        fmt.println("i=", num)
    }
}

三、swich分支语句

 go语言中的switch语句默认每个case 都有break,这与java语言略有不同

func main() {
    //=========== 格式一 ===========
    switch finger := 3; finger {
    case 1:
        fmt.println("1")
    case 2:
        fmt.println("2")
    case 3:
        fmt.println("3")
    default:
        fmt.println("0")
    }
    //===========case后可以多个条件===========
    letter := "i"
    switch letter {
    case "a", "e", "i", "o", "u": // 一个选项多个表达式
        fmt.println("hello")
    default:
        fmt.println("word")
    }
    //在 switch 语句中,表达式是可选的,可以被省略。如果省略表达式,则表示这个 switch 语句等同于 switch true
    num := 75
    switch { // 表达式被省略了
    case num >= 0 && num <= 50:
        fmt.println("num is greater than 0 and less than 50")
    case num >= 51 && num <= 100:
        fmt.println("num is greater than 51 and less than 100")
    case num >= 101:
        fmt.println("num is greater than 100")
    }
}

fallthrough语句:在 go 中,每执行完一个 case 后,会从 switch 语句中跳出来,不再做后续 case 的判断和执行。使用 fallthrough 语句可以在已经执行完成的 case 之后,把控制权转移到下一个 case 的执行代码中。类似于java 中case之后不写break

 

func main() {
    //=========== 格式一 ===========
    switch finger := 3; finger {
    case 1:
        fmt.println("1")
    case 2:
        fmt.println("2")
    case 3:
        fmt.println("3")
        fallthrough
    default:
        fmt.println("0")
    }
}