go语言快速入门:流程控制(7)

go语言中没有do-while,switch更加灵活,支持初始化子语句,这篇文章中将会就go的循环/分支等流程控制语句进行简单介绍。

if语句

写法和其他语言基本一致,不过多层else if的时候需要注意{要写在一行,否则通不过编译也无法进行go fmt

例子代码

[root@liumiaocn goprj]# cat basic-if.go
package main

func main() {

        //pattarn 1
        score := 75
        if score < 60 {
                println("Grade: D")
        } else if score < 70 {
                println("Grade: C")
        } else if score < 80 {
                println("Grade: B")
        } else if score <= 100 {
                println("Grade: B")
        } else {
                println("Grade: undefined")
        }

        //pattarn 2
        if score := 45; score < 60 {
                println("Grade: D")
        } else if score < 70 {
                println("Grade: C")
        } else if score < 80 {
                println("Grade: B")
        } else if score <= 100 {
                println("Grade: B")
        } else {
                println("Grade: undefined")
        }
}
[root@liumiaocn goprj]#

执行结果

[root@liumiaocn goprj]# go run basic-if.go
Grade: B
Grade: D
[root@liumiaocn goprj]#

switch-case语句

例子代码

[root@liumiaocn goprj]# cat basic-switch.go
package main

import "fmt"

func main() {
        //pattarn 1
        weekday := "FRI"
        switch weekday {
        case "MON":
                fmt.Println("Monday...")
        case "TUE":
                fmt.Println("Tuesday...")
        case "WED":
                fmt.Println("Wednesday...")
        case "THU":
                fmt.Println("Thursday...")
        case "FRI":
                fmt.Println("Friday...")
        case "SAT":
                fmt.Println("Saterday...")
        case "SUN":
                fmt.Println("Sunday...")
        default:
                fmt.Println("Default branche...")
        }

        //pattarn 2
        switch weekday := "SUN"; weekday {
        case "MON":
                fmt.Println("Monday...")
        case "TUE":
                fmt.Println("Tuesday...")
        case "WED":
                fmt.Println("Wednesday...")
        case "THU":
                fmt.Println("Thursday...")
        case "FRI":
                fmt.Println("Friday...")
        case "SAT":
                fmt.Println("Saterday...")
        case "SUN":
                fmt.Println("Sunday...")
        default:
                fmt.Println("Default branche...")
        }

        //pattarn 3
        score := 75
        switch {
        case score < 60:
                fmt.Println("Grade D...")
        case score <= 70:
                fmt.Println("Grade C...")
        case score <= 80:
                fmt.Println("Grade B...")
        case score <= 90:
                fmt.Println("Grade B...")
        default:
                fmt.Println("Default branche...")
        }

        //pattarn 4
        var obj interface{}
        obj = "Hello World"
        switch obj.(type) {
        case int:
                fmt.Println("This is a int type ...")
        case string:
                fmt.Println("This is a string type...")
        default:
                fmt.Println("Default branch...")
        }
}
[root@liumiaocn goprj]#

执行结果

[root@liumiaocn goprj]# go run basic-switch.go
Friday...
Sunday...
Grade B...
This is a string type...
[root@liumiaocn goprj]#

for语句

例子代码

[root@liumiaocn goprj]# cat basic-for.go
package main

func main() {
        //pattarn 1
        for level := 0; level < 10; level++ {
                for cnt := 0; cnt < 10-level; cnt++ {
                        print(" ")
                }
                for ascnt := 0; ascnt < level; ascnt++ {
                        print("*")
                }
                println("")
        }

        //pattarn 2
        level := 0
        for level < 10 {
                for cnt := 0; cnt < 10-level; cnt++ {
                        print(" ")
                }
                for ascnt := 0; ascnt < 2*level-1; ascnt++ {
                        print("*")
                }
                println("")
                level++
        }

        //pattarn 3
        /*
                for {
                        println("please don try this one unless you want to test your cpu usage")
                }
        */

}
[root@liumiaocn goprj]#

执行结果

[root@liumiaocn goprj]# go run basic-for.go

         *
        **
       ***
      ****
     *****
    ******
   *******
  ********
 *********

         *
        ***
       *****
      *******
     *********
    ***********
   *************
  ***************
 *****************
[root@liumiaocn goprj]#
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值