溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

go語(yǔ)言中for有哪幾種寫法

發(fā)布時(shí)間:2023-01-28 10:29:57 來源:億速云 閱讀:107 作者:iii 欄目:編程語(yǔ)言

這篇“go語(yǔ)言中for有哪幾種寫法”文章的知識(shí)點(diǎn)大部分人都不太理解,所以小編給大家總結(jié)了以下內(nèi)容,內(nèi)容詳細(xì),步驟清晰,具有一定的借鑒價(jià)值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“go語(yǔ)言中for有哪幾種寫法”文章吧。

Go 語(yǔ)言的For循環(huán)有3種寫法:1、和C語(yǔ)言for一樣的寫法,語(yǔ)法“for init; condition; post {...}”;2、和C語(yǔ)言while一樣的寫法,語(yǔ)法“for condition {...}”;3、和C語(yǔ)言for(;;)一樣的寫法,語(yǔ)法“for {...}”。需要注意,左花括號(hào)“{”必須與for關(guān)鍵字處于同一行。

與多數(shù)語(yǔ)言不同的是,Go語(yǔ)言中的循環(huán)語(yǔ)句只支持 for 關(guān)鍵字,而不支持 while 和 do-while 結(jié)構(gòu)。

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

Go 語(yǔ)言 for 循環(huán)的寫法

Go 語(yǔ)言的 For 循環(huán)有 3 種形式,只有其中的一種使用分號(hào)。

和 C 語(yǔ)言的 for 一樣:

for init; condition; post { }

和 C 的 while 一樣:

for condition { }

和 C 的 for(;;) 一樣:

for { }

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

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

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

for語(yǔ)句執(zhí)行過程如下:

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

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

使用循環(huán)語(yǔ)句時(shí),需要注意的有以下幾點(diǎn):

  • 左花括號(hào){必須與 for 處于同一行。

  • Go語(yǔ)言中的 for 循環(huán)與C語(yǔ)言一樣,都允許在循環(huán)條件中定義和初始化變量,唯一的區(qū)別是,Go語(yǔ)言不支持以逗號(hào)為間隔的多個(gè)賦值語(yǔ)句,必須使用平行賦值的方式來初始化多個(gè)變量。

  • Go語(yǔ)言的 for 循環(huán)同樣支持 continue 和 break 來控制循環(huán),但是它提供了一個(gè)更高級(jí)的 break,可以選擇中斷哪一個(gè)循環(huán),如下例:

for j := 0; j < 5; j++ {
    for i := 0; i < 10; i++ {
        if i > 5 {
            break JLoop
        }
        fmt.Println(i)
    }
}
JLoop:
// ...

上述代碼中,break 語(yǔ)句終止的是 JLoop 標(biāo)簽處的外層循環(huán)。

Go 語(yǔ)言 for 循環(huán)的使用

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

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

以上代碼中的 key 和 value 是可以省略。

如果只想讀取 key,格式如下:

for key := range oldMap

或者這樣:

for key, _ := range oldMap

如果只想讀取 value,格式如下:

for _, value := range oldMap

實(shí)例

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

package main

import "fmt"

func main() {
   sum := 0
      for i := 0; i <= 10; i++ {
         sum += i
      }
   fmt.Println(sum)
}

輸出結(jié)果為:

55

init 和 post 參數(shù)是可選的,我們可以直接省略它,類似 While 語(yǔ)句。

以下實(shí)例在 sum 小于 10 的時(shí)候計(jì)算 sum 自相加后的值:

package main

import "fmt"

func main() {
   sum := 1
   for ; sum <= 10; {
      sum += sum
   }
   fmt.Println(sum)

   // 這樣寫也可以,更像 While 語(yǔ)句形式
   for sum <= 10{
      sum += sum
   }
   fmt.Println(sum)
}

輸出結(jié)果為:

16
16

以上就是關(guān)于“go語(yǔ)言中for有哪幾種寫法”這篇文章的內(nèi)容,相信大家都有了一定的了解,希望小編分享的內(nèi)容對(duì)大家有幫助,若想了解更多相關(guān)的知識(shí)內(nèi)容,請(qǐng)關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI