GO基础之流程控制语句

一、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")
    }
}
posted @ 2019-10-29 21:27  小禾点点  阅读(338)  评论(0编辑  收藏  举报