Golang的循环结构-for语句

          Golang的循环结构-for语句

                             作者:尹正杰

版权声明:原创作品,谢绝转载!否则将追究法律责任。

 

 

 

一.for循环语法

  循环结构在生活中的场景也非常的多,比如:
    (1)上班族们每天朝九晚五的生活;
    (2)一年四季周而复始的循环;
    (3)奥运会上运动员围绕操场跑圈的场景;
    (4)时钟的秒针,分针,时针规律的转动;
    (5)各个国家每年特定的日子有特殊的节日,以中国为例,就有:元旦节,春节,清明节,劳动节,端午节,国庆节等
    ......

  Go语言中最常用的for循环语法结构如下:
    for 表达式1;表达式2;表达式3 {
      //循环体
    }
  
  Go语法结构说明:
    表达式1:
      定义一个循环的变量,记录循环的次数。
    表达式2:
      一般为循环条件,循环多少次。
    表达式3:
      一般为改变循环条件的代码,使循环条件终有不再成立。
    循环体:
      重复要做的事情。
 
  循环语句之间可以相互嵌套,嵌套循环语法如下:
    for 循环条件{
      for 循环条件{
        //代码块
      }
    }

  循环控制语句:
    break:
      当它出现在循环语句中,作用是跳出当前内循环语句,执行后面的代码。
      当它出现在嵌套循环语句中,跳出最近的内循环语句,执行后面的代码。
    continue:
      在循环语句中,如果希望立即终止本次循环,并执行下一次循环,换句话说,就是跳过本次循环执行下一次循环。 
    goto:
      goto语句也称为无条件转移语句,本篇博客暂时不涉及,在后续的笔记会有相应的使用案例。

 

二.for循环使用案例

1>.打印1-100之间数字之和

package main

import (
    "fmt"
)

func main() {

    //计算1-100之间的和
    var sum int

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

    fmt.Printf("[1-100]之间数字之和为:%d", sum)
}

2>.打印1-100之间的奇数

package main

import (
    "fmt"
)

func main() {

    //计算1-100之间的奇数之和
    var sum int

    for i := 1; i <= 100; i += 2 {
        sum += i
    }

    fmt.Printf("[1-100]之间数字之和为:%d", sum)

}

3>.打印1000以内的水仙花数(循环条件+流程控制)

package main

import (
    "fmt"
    "math"
)

func main() {

    /*
        什么是水仙花数:
            一个三位数,各个位数的立方和等于本身的数统称为水仙花数字

        关于math包的用法,博主推荐阅读:
            https://www.cnblogs.com/yinzhengjie/p/12203765.html
    */

    fmt.Printf("1000以内的水仙花数有: ")
    //计算1000以内的水仙花数
    for i := 100; i <= 999; i++ {
        //计算个位的三次方
        one := int(math.Pow(float64(i%10), 3))

        //计算十位的三次方
        ten := int(math.Pow(float64(i/10%10), 3))

        //计算百位的三次方
        hundred := int(math.Pow(float64(i/100), 3))

        if one+ten+hundred == i {
            fmt.Printf("%d ", i)
        }
    }
    fmt.Println()

}

4>.打印九九乘法表(循环嵌套案例)

package main

import (
    "fmt"
)

func main() {

    //外层循环,控制循环次数
    for i := 1; i <= 9; i++ {
        //内层循环,控制每次外层循环,内层循环执行的次数
        for j := 1; j <= i; j++ {
            fmt.Printf("%d x %d = %d\t", j, i, i*j)
        }
        fmt.Println()
    }
}

5>.使用死循环方式打印1-10(break应用案例)

package main

import "fmt"

func main() {

    var index int

    //使用for的死循环语法
    for {
        index++
        fmt.Printf("%d\t", index)

        //打印数字1-10
        if index == 10 {
            break
        }
    }
    fmt.Println()
}

6>.嵌套循环语句中break的作用范围

package main

import (
    "fmt"
)

func main() {
    for i := 1; i <= 6; i++ {
        for j := 0; j < 10; j++ {
            if j == 3 {
                break
            }
            fmt.Printf("i = %d, j = %d\n", i, j)
        }
    }
}

7>.打印1-100之间的偶数(continue案例)

package main

import "fmt"

func main() {

    var (
        sum int
    )

    for i := 0; i <= 100; i++ {
        if i%2 != 0 {
            continue
        }
        sum += i
    }

    fmt.Printf("1-100之间的偶数之和为:%d\n", sum)
}

 

 

 

posted @ 2020-02-11 21:34  JasonYin2020  阅读(749)  评论(0编辑  收藏  举报