第三章 go语言 程序的流程控制 (2)

可不设定switch后的条件表达式,在此种情况下整个switch结构与if...else...的逻辑等同。

package main

 

import "fmt"

 

func main() {

    num := 1

 

    switch {

    case 0 <= num && num <= 3:

        fmt.Println("0-3")

    case 4 <= num && num <= 6:

        fmt.Println("4-6")

    case 7 <= num && num <= 9:

        fmt.Println("7-9")

    }

}

 

例子:根据输入的年份月份计算月份的天数?

package main

 

import "fmt"

 

func main() {

 

    fmt.Println("请输入年份月份:")

    var month int

    var year int

    fmt.Scanln(&year, &month)

    switch month {

    case 1, 3, 5, 7, 8, 10, 12:

        fmt.Println("31天")

    case 4, 6, 9, 11:

        fmt.Println("30天")

    case 2:

        if (year%4 == 0 && year%100 != 0) || (year%400 == 0) {

            fmt.Println("29天")

        } else {

            fmt.Println("28天")

        }

    default:

        fmt.Println("输入的月份有误!")

    }

}

 

 

3.2 循环结构

接下来,我们来看循环结构,在其它编程语言中,循环结构一般至少包括forwhiledo while语句三种,但是在Go语言中,循环结构只有for语句,没有whiledo while语句。因为for语句经过变体是可以完全替代其它语句的,这也体现了Go语言的简洁性。

3.2.1 for语句

for语句的语法如下:

// 普通循环

for 初始化表达式; 条件表达式; 步进表达式 {

    循环体语句

}

 

 

   先执行初始化表达式,然后执行条件表达式,如果条件表达式的结果为真,执行循环体语句和步进表达式。然后再回到条件表达式进行判断,周而复始的重复执行。如果条件表达式的结果为假,直接跳出for循环,意味这整个for循环结束。

 

 

第三章 go语言 程序的流程控制

 

 

 

 

 

 

普通for循环的流程图:

我们看一个for循环的例子,求1~100的数值的和。

package main

 

import "fmt"

 

func main() {

 

    //保存结果

    var sum int = 0

    // i表示1~100

    for i := 1; i <= 100; i++ {

        sum = sum + i

    }

    fmt.Println("sum:", sum)

}

 

 

省略表达式1

package main

 

import "fmt"

 

func main() {

    var sum int = 0

    i := 1

    for ; i <= 100; i++ {

        sum = sum + i

    }

    fmt.Println("sum:", sum)

}

 

省略表达式2

package main

 

import "fmt"

 

func main() {

    var sum int = 0

    i := 1

    for ; ; i++ {

        if i > 100 {

            break

        }

 

        sum = sum + i

    }

    fmt.Println("sum:", sum)

}

 

省略表达式3

package main

 

import "fmt"

 

func main() {

    var sum int = 0

    i := 1

    for {

        if i > 100 {

            break

        }

        sum = sum + i

        i++

    }

    fmt.Println("sum:", sum)

}

 

 

 

数组循环:

// 数组循环

for i, v := range array {

    ...

}

 

 

注意事项:

1) 只支持for结构,不支持whiledo-while结构。

2) 左花括号{必须与for处于同一行。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wsxsfg.html