欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Go語言中循環(huán)語句使用的示例詳解

 更新時(shí)間:2022年04月22日 10:35:16   作者:隱姓埋名4869  
在不少實(shí)際問題中有許多具有規(guī)律性的重復(fù)操作,因此在程序中就需要重復(fù)執(zhí)行某些語句。本文將通過示例詳細(xì)為大家講講Go語言中的循環(huán)語句,需要的可以參考一下

一、概述

在不少實(shí)際問題中有許多具有規(guī)律性的重復(fù)操作,因此在程序中就需要重復(fù)執(zhí)行某些語句。

循環(huán)程序的流程圖:

Go 語言提供了以下幾種類型循環(huán)處理語句:

循環(huán)類型描述
for 循環(huán)重復(fù)執(zhí)行語句塊
循環(huán)嵌套循環(huán)中嵌套一個(gè)或多個(gè) for 循環(huán)

1. 循環(huán)控制語句

循環(huán)控制語句可以控制循環(huán)體內(nèi)語句的執(zhí)行過程。

GO 語言支持以下幾種循環(huán)控制語句:

控制語句描述
break 語句經(jīng)常用于中斷當(dāng)前 for 循環(huán)或跳出 switch 語句
continue 語句跳過當(dāng)前循環(huán)的剩余語句,然后繼續(xù)進(jìn)行下一輪循環(huán)
goto 語句將控制轉(zhuǎn)移到被標(biāo)記的語句

2. 無限循環(huán)

如果循環(huán)中條件語句永遠(yuǎn)不為 false 則會(huì)進(jìn)行無限循環(huán),我們可以通過 for 循環(huán)語句中只設(shè)置一個(gè)條件表達(dá)式來執(zhí)行無限循環(huán):

示例

package main
 
import (
    "fmt"
    "time"
)
 
func main() {
    i := 0
    for true {      //for后面true為可選,若不加,默認(rèn)為true
        fmt.Printf("i: %v\n", i)
        i++
        time.Sleep(time.Second)
    }
}

輸出結(jié)果如下

i: 0
i: 1
i: 2
i: 3
i: 4
i: 5
i: 6
i: 7

二、Go 語言 for 循環(huán)

1. 語法

for 循環(huán)是一個(gè)循環(huán)控制結(jié)構(gòu),可以執(zhí)行指定次數(shù)的循環(huán)

語法:

//Go 語言的 For 循環(huán)有 3 種形式,只有其中的一種使用分號(hào)
//和 C 語言的 for 一樣:

for init; condition; post { }

//和 C 的 while 一樣:
for condition { }
 
//和 C 的 for(;;) 一樣:
for { }

init: 一般為賦值表達(dá)式,給控制變量賦初值

condition: 關(guān)系表達(dá)式或邏輯表達(dá)式,循環(huán)控制條件

post:一般為賦值表達(dá)式,給控制變量增量或減量。

2. for語句執(zhí)行過程

① 先對(duì)表達(dá)式 1 賦初值;

② 判別賦值表達(dá)式 init 是否滿足給定條件,若其值為真,滿足循環(huán)條件,則執(zhí)行循環(huán)體內(nèi)語句,然后執(zhí)行 post,進(jìn)入第二次循環(huán),再判別 condition;否則判斷 condition 的值為假,不滿足條件,就終止for循環(huán),執(zhí)行循環(huán)體外語句。

for 循環(huán)的 range 格式可以對(duì) slice、map、數(shù)組、字符串等進(jìn)行迭代循環(huán)。

格式如下:

for key, value := range oldMap {
    newMap[key] = value
}

for 語句語法流程如下圖所示:

3. 示例

計(jì)算 1 到 10 的數(shù)字之和

package main
 
import "fmt"
 
func main() {
    sum := 0
    for i := 0; i <= 10; i++ {
        sum += i
    }
    fmt.Printf("sum: %v\n", sum)
}

輸出結(jié)果為:

55

int 和 post 參數(shù)是可選的,我們可以直接省略他,類型while語句

package main
 
import "fmt"
 
func main() {
    sum := 0
    i := 1
    for i <= 10 {
        sum += i
        i++
    }
    fmt.Printf("sum: %v\n", sum)
} 

計(jì)算0-100間偶數(shù)的和

//求出0-100的偶數(shù)和 
package main
 
import "fmt"
 
func main() {
    a := 0
    for i := 1; i <= 100; i++ {
        if i%2 == 0 {
            a += i
        }
    }
    fmt.Printf("a: %v\n", a)
}

輸出結(jié)果如下

2550

//方法二
package main
 
import "fmt"
 
func main() {
    sum := 0
    for i := 0; i <= 100; i += 2 {
        sum += i
    }
    fmt.Printf("sum: %v\n", sum)
} 

4. For-each range 循環(huán)

這種格式的循環(huán)可以對(duì)字符串、數(shù)組、切片等進(jìn)行迭代輸出元素

示例

//循環(huán)數(shù)組
package main
 
import "fmt"
 
func main() {
    names := []int{20, 30, 40, 50, 60}
    //a獲取key,b獲取value
    for a, b := range names {
        fmt.Print("key:", a, "  value:", b, "\n")
    }
}

輸出結(jié)果如下

key:0  value:20
key:1  value:30
key:2  value:40
key:3  value:50
key:4  value:60

//使用空白標(biāo)識(shí)符直接獲取value
package main
 
import "fmt"
 
func main() {
    names := []int{20, 30, 40, 50, 60}
    //a獲取key,b獲取value
    for _, b := range names {
        fmt.Print("value:", b, "\n")
    }
}

輸出結(jié)果

value:20
value:30
value:40
value:50
value:60

三、循環(huán)嵌套

Go 語言允許用戶在循環(huán)內(nèi)使用循環(huán)

1. 語法

以下為 Go 語言嵌套循環(huán)的格式:

for [condition |  ( init; condition; increment ) | Range]
{
   for [condition |  ( init; condition; increment ) | Range]
   {
      statement(s);
   }
   statement(s);
}

2. 示例

以下實(shí)例使用循環(huán)嵌套來輸出 2 到 100 間的素?cái)?shù):

package main
 
import "fmt"
 
func main() {
   /* 定義局部變量 */
   var i, j int
 
   for i=2; i < 100; i++ {
      for j=2; j <= (i/j); j++ {
         if(i%j==0) {
            break; // 如果發(fā)現(xiàn)因子,則不是素?cái)?shù)
         }
      }
      if(j > (i/j)) {
         fmt.Printf("%d  是素?cái)?shù)\n", i);
      }
   } 
}

輸出結(jié)果如下

2  是素?cái)?shù)
3  是素?cái)?shù)
5  是素?cái)?shù)
7  是素?cái)?shù)
11  是素?cái)?shù)
13  是素?cái)?shù)
17  是素?cái)?shù)
19  是素?cái)?shù)
23  是素?cái)?shù)
29  是素?cái)?shù)
31  是素?cái)?shù)
37  是素?cái)?shù)
41  是素?cái)?shù)
43  是素?cái)?shù)
47  是素?cái)?shù)
53  是素?cái)?shù)
59  是素?cái)?shù)
61  是素?cái)?shù)
67  是素?cái)?shù)
71  是素?cái)?shù)
73  是素?cái)?shù)
79  是素?cái)?shù)
83  是素?cái)?shù)
89  是素?cái)?shù)
97  是素?cái)?shù)

99乘法表:

package main
 
import "fmt"
 
func main() {
    for i := 1; i < 10; i++ {
        for j := 1; j < i+1; j++ {
            fmt.Printf("%d * %d = %d\t", i, j, j*i)
        }
        fmt.Println()
    }
}

輸出結(jié)果如下

1 * 1 = 1  
2 * 1 = 2   2 * 2 = 4  
3 * 1 = 3   3 * 2 = 6   3 * 3 = 9  
4 * 1 = 4   4 * 2 = 8   4 * 3 = 12  4 * 4 = 16 
5 * 1 = 5   5 * 2 = 10  5 * 3 = 15  5 * 4 = 20  5 * 5 = 25 
6 * 1 = 6   6 * 2 = 12  6 * 3 = 18  6 * 4 = 24  6 * 5 = 30  6 * 6 = 36 
7 * 1 = 7   7 * 2 = 14  7 * 3 = 21  7 * 4 = 28  7 * 5 = 35  7 * 6 = 42  7 * 7 = 49 
8 * 1 = 8   8 * 2 = 16  8 * 3 = 24  8 * 4 = 32  8 * 5 = 40  8 * 6 = 48  8 * 7 = 56  8 * 8 = 64 
9 * 1 = 9   9 * 2 = 18  9 * 3 = 27  9 * 4 = 36  9 * 5 = 45  9 * 6 = 54  9 * 7 = 63  9 * 8 = 72  9 * 9 = 81  

四、break 語句

1. 語法

Go 語言中 break 語句用于以下兩方面:

用于循環(huán)語句中跳出循環(huán),并開始執(zhí)行循環(huán)之后的語句。

break 在 switch(開關(guān)語句)中在執(zhí)行一條 case 后跳出語句的作用。

在多重循環(huán)中,可以用標(biāo)號(hào) label 標(biāo)出想 break 的循環(huán)。

break 語法格式如下:

break;  

流程如圖:

2. 示例

在變量 a 大于 15 的時(shí)候跳出循環(huán):

package main
 
import "fmt"
 
func main() {
    var a int = 10
    for a < 20 {
        fmt.Printf("a: %v\n", a)
        a++
        if a > 15 {
            break
        }
    }
}

執(zhí)行結(jié)果如下

a: 10
a: 11
a: 12
a: 13
a: 14
a: 15

演示使用標(biāo)記和不使用標(biāo)記的區(qū)別

package main
 
import "fmt"
 
func main() {
    //不適用標(biāo)記
    fmt.Println("----break----")
    for i := 1; i <= 3; i++ {
        fmt.Printf("i: %v\n", i)
        for a := 11; a <= 13; a++ {
            fmt.Printf("a: %v\n", a)
            break
        }
    }
    //使用標(biāo)記
    fmt.Println("----break label----")
fla:
    for i := 1; i <= 3; i++ {
        fmt.Printf("i: %v\n", i)
        for a := 11; a <= 13; a++ {
            fmt.Printf("a: %v\n", a)
            break fla
        }
    }
}

輸出結(jié)果如下

----break----
i: 1
a: 11
i: 2
a: 11
i: 3
a: 11
----break label----
i: 1
a: 11

五、 continue 語句

1. 語法

Go 語言的 continue 語句 有點(diǎn)像 break 語句。但是 continue 不是跳出循環(huán),而是跳過當(dāng)前循環(huán)執(zhí)行下一次循環(huán)語句。

for 循環(huán)中,執(zhí)行 continue 語句會(huì)觸發(fā) for 增量語句的執(zhí)行。

在多重循環(huán)中,可以用標(biāo)號(hào) label 標(biāo)出想 continue 的循環(huán)。

continue 語法格式如下:

continue;  

continue 語句流程圖如下:

2. 示例

在變量 a 等于 15 的時(shí)候跳過本次循環(huán)執(zhí)行下一次循環(huán):

package main
 
import "fmt"
 
func main() {
    var a int = 10
    for a < 20 {
        if a == 15 {
            a = a + 1
            continue
        }
        fmt.Printf("a: %v\n", a)
        a++
    }
}

輸出結(jié)果如下

a: 10
a: 11
a: 12
a: 13
a: 14
a: 16
a: 17
a: 18
a: 19

用多重循環(huán)演示使用標(biāo)記和不使用標(biāo)記的區(qū)別:

package main
 
import "fmt"
 
func main() {
 
    // 不使用標(biāo)記
    fmt.Println("---- continue ---- ")
    for i := 1; i <= 3; i++ {
        fmt.Printf("i: %d\n", i)
        for a := 11; a <= 13; a++ {
            fmt.Printf("a: %d\n", a)
            continue
        }
    }
 
    // 使用標(biāo)記
    fmt.Println("---- continue label ----")
re:
    for i := 1; i <= 3; i++ {
        fmt.Printf("i: %d\n", i)
        for a := 11; a <= 13; a++ {
            fmt.Printf("a: %d\n", a)
            continue re
        }
    }
}

輸出結(jié)果如下

---- continue ----
i: 1
a: 11
a: 12
a: 13
i: 2
a: 11
a: 12
a: 13
i: 3
a: 11
a: 12
a: 13
---- continue label ----
i: 1
a: 11
i: 2
a: 11
i: 3
a: 11

六、goto 語句

1. 語法

Go 語言的 goto 語句可以無條件地轉(zhuǎn)移到過程中指定的行

goto 語句通常與條件語句配合使用,可用來實(shí)現(xiàn)條件轉(zhuǎn)移, 構(gòu)成循環(huán),跳出循環(huán)體等功能。

但是,在結(jié)構(gòu)化程序設(shè)計(jì)中一般不主張使用 goto 語句, 以免造成程序流程的混亂,使理解和調(diào)試程序都產(chǎn)生困難。

goto 語法格式如下:

goto label;
..
.
label: statement;  

goto 語句流程圖如下:

2. 示例

在變量 a 等于 15 的時(shí)候跳過本次循環(huán)并回到循環(huán)的開始語句 LOOP 處:

package main
 
import "fmt"
 
func main() {
    /* 定義局部變量 */
    var a int = 10
 
    /* 循環(huán) */
LOOP:
    for a < 20 {
        if a == 15 {
            /* 跳過迭代 */
            a = a + 1
            goto LOOP
        }
        fmt.Printf("a的值為 : %d\n", a)
        a++
    }
}

輸出結(jié)果如下

a的值為 : 10
a的值為 : 11
a的值為 : 12
a的值為 : 13
a的值為 : 14
a的值為 : 16
a的值為 : 17
a的值為 : 18
a的值為 : 19

goto 語句打印九九乘法表:

package main
 
import "fmt"
 
//for循環(huán)配合goto打印九九乘法表
func main() {
    for m := 1; m < 10; m++ {
        n := 1
    LOOP:
        if n <= m {
            fmt.Printf("%dx%d=%d ", n, m, m*n)
            n++
            goto LOOP
        } else {
            fmt.Println("")
        }
        n++
    }
}

到此這篇關(guān)于Go語言中循環(huán)語句使用的示例詳解的文章就介紹到這了,更多相關(guān)Go語言循環(huán)語句內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Go?實(shí)戰(zhàn)單隊(duì)列到優(yōu)先級(jí)隊(duì)列實(shí)現(xiàn)圖文示例

    Go?實(shí)戰(zhàn)單隊(duì)列到優(yōu)先級(jí)隊(duì)列實(shí)現(xiàn)圖文示例

    這篇文章主要為大家介紹了Go?實(shí)戰(zhàn)單隊(duì)列到優(yōu)先級(jí)隊(duì)列圖文示例實(shí)現(xiàn)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-07-07
  • Golang?PHP?數(shù)據(jù)綁定示例分析

    Golang?PHP?數(shù)據(jù)綁定示例分析

    這篇文章主要為大家介紹了Golang?PHP?數(shù)據(jù)綁定示例分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-08-08
  • GO語言基本類型分析

    GO語言基本類型分析

    這篇文章主要介紹了GO語言基本類型,較為詳細(xì)的分析了整形、浮點(diǎn)型、字符串、指針等類型的具體用法,是深入學(xué)習(xí)GO語言所必須掌握的重要基礎(chǔ),需要的朋友可以參考下
    2014-12-12
  • 最新評(píng)論