Golang学习笔记-1.9 for循环

本文系第九篇Golang语言学习教程
Go语言只有For这一种循环语句。For循环有三种形式,只有其中一种使用分号。

  • 与其他语言for类似
for init; condition; post { 
}
  • 和while类似
for condition { 
}
  • 和其他语言for {;;}类似
for { 
}

init:一般为赋值表达式,为循环变量赋初值
condition:循环控制条件,关系表达式或逻辑表达式
post:一般为赋值表达式,给循环变量增量或减量

下面通过几个例子来理解循环
例1

package main

import "fmt"

func main(){
    for i :=1; i <=10; i++{ //i=1,且i<=10,每次循环+1
        fmt.Printf(" %d", i)
    }
}

以上例子中,分别以分号;定义了init,condition,post

初始化语句只执行一次,循环初始化后,将检查循环条件,如果结果为true,则执行{ }中的循环体;post语句在每次成功循环迭代后执行,在执行完post后,条件将被再次检查,若结果为true,则循环继续执行,否则循环结束。

例2

package main

import "fmt"

func main(){
    j := 0
    for ; j <= 10; {  //两个 ; 可以省略
        fmt.Printf(" %d", j)
        j += 2
    }
}

以上例子中,初始化语句和post语句都被省略,j在for循环外就被初始化为0,只要条件j <= 10为true,循环就会执行,并且在循环中 j 以2的增量自增。
以上程序打印了0到10所有的偶数:0 2 4 6 8 10

例3

package main

import "fmt"

func main(){
    for {
        fmt.Println("Hello,world!")
    }
}

以上程序是一个无限循环程序,会不停的输出Hello,world!

break

break用于在完成正常执行之前突然中止for循环,之后程序会开始在for循环下一行代码执行。
例4

package main

import "fmt"

func main(){
    for a := 0; a <= 10; a++{
        if a >5 {
            break
        }
        fmt.Printf(" %d", a)
    }
    fmt.Println("\nthis go is stop")
}

以上程序在循环开始后首先判断a > 5条件是否成立,若不成立,继续打印a的值,继续循环;若成立,则break终止循环,继续执行下面的打印 this go is stop
循环打印结果为:

0 1 2 3 4 5

this go is stop

continue

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

package main

import "fmt"

func main(){
    for b := 0; b <= 10; b++{
        if b%2 == 0 {
            continue
        }
        fmt.Printf(" %d", b)
    }
}

以上程序在循环开始后首先判断b除以2的余数是不是0(b%2 == 0),若结果为成立,则跳出本次循环,后面的语句不会被执行;若不成立,则继续执行后面的语句。
循环打印的结果为:
1 3 5 7 9

例6
for循环中可以声明和操作多个变量:

package main

import "fmt"

func main(){
    for yes, no :=10,1; yes <=20 && no <=10 ; yes, no = yes+1, no+1  {
        fmt.Printf("\n%d * %d = %d", yes,no,yes * no )
    }
}

以上程序声明yes和no的值,&&用来确保yes的值小于20并且no的值小于10,每次循环完成后yes和no自增1
循环打印的结果为:

10 * 1 = 10
11 * 2 = 22
12 * 3 = 36
13 * 4 = 52
14 * 5 = 70
15 * 6 = 90
16 * 7 = 112
17 * 8 = 136
18 * 9 = 162
19 * 10 = 190

以上为学习Golang 循环篇

你可能感兴趣的:(Golang学习笔记-1.9 for循环)