深入解析Go語(yǔ)言中for循環(huán)的寫(xiě)法
for循環(huán)是一個(gè)循環(huán)控制結(jié)構(gòu),可以有效地編寫(xiě)需要執(zhí)行的特定次數(shù)的循環(huán)。
語(yǔ)法
for循環(huán)在Go編程語(yǔ)言中的語(yǔ)法是:
for [condition | ( init; condition; increment ) | Range]
{
statement(s);
}
下面是控制在一個(gè)流程的for循環(huán):
如果condition是可用的,那么對(duì)于循環(huán)只要條件為真時(shí)執(zhí)行。
如果for子句是( init; condition; increment ) 存在則
初始化(init)步驟首先被執(zhí)行,并且只有一次。這一步可以聲明和初始化任何循環(huán)控制變量。不需要把一個(gè)聲明在這里,只要有一個(gè)分號(hào)出現(xiàn)。
接著,條件(condition)進(jìn)行了評(píng)估計(jì)算。如果為true,則執(zhí)行循環(huán)體。如果是假的,循環(huán)體不執(zhí)行,只是之后的for循環(huán)流量控制跳轉(zhuǎn)到下一條語(yǔ)句。
for循環(huán)執(zhí)行主體之后,控制流跳轉(zhuǎn)回到增量(increment)語(yǔ)句。此語(yǔ)句可以讓你更新任何循環(huán)控制變量。這個(gè)語(yǔ)句可以留空,只要一個(gè)分號(hào)出現(xiàn)條件后。
condition現(xiàn)在重新評(píng)估計(jì)算。如果為true,循環(huán)執(zhí)行的過(guò)程中重復(fù)(循環(huán)體,然后增加步,然后再次條件)。之后如果條件為假,則循環(huán)終止。
如果range可用,然后循環(huán)執(zhí)行的范圍內(nèi)的每個(gè)項(xiàng)目。
流程圖:

例子:
package main
import "fmt"
func main() {
var b int = 15
var a int
numbers := [6]int{1, 2, 3, 5}
/* for loop execution */
for a := 0; a < 10; a++ {
fmt.Printf("value of a: %d\n", a)
}
for a < b {
a++
fmt.Printf("value of a: %d\n", a)
}
for i,x:= range numbers {
fmt.Printf("value of x = %d at %d\n", x,i)
}
}
讓我們編譯和運(yùn)行上面的程序,這將產(chǎn)生以下結(jié)果:
value of a: 0 value of a: 1 value of a: 2 value of a: 3 value of a: 4 value of a: 5 value of a: 6 value of a: 7 value of a: 8 value of a: 9 value of a: 1 value of a: 2 value of a: 3 value of a: 4 value of a: 5 value of a: 6 value of a: 7 value of a: 8 value of a: 9 value of a: 10 value of a: 11 value of a: 12 value of a: 13 value of a: 14 value of a: 15 value of x = 1 at 0 value of x = 2 at 1 value of x = 3 at 2 value of x = 5 at 3 value of x = 0 at 4 value of x = 0 at 5
Go語(yǔ)言嵌套for循環(huán)
Go編程語(yǔ)言允許使用一個(gè)循環(huán)內(nèi)嵌套另一個(gè)循環(huán)。下面的內(nèi)容展示幾個(gè)例子來(lái)說(shuō)明這個(gè)概念。
語(yǔ)法
在Go語(yǔ)言中嵌套for循環(huán)語(yǔ)句的語(yǔ)法如下:
for [condition | ( init; condition; increment ) | Range]
{
for [condition | ( init; condition; increment ) | Range]
{
statement(s);
}
statement(s);
}
例子:
下面的程序使用嵌套for循環(huán)從2至100找出的素?cái)?shù):
package main
import "fmt"
func main() {
/* local variable definition */
var i, j int
for i=2; i < 100; i++ {
for j=2; j <= (i/j); j++ {
if(i%j==0) {
break; // if factor found, not prime
}
}
if(j > (i/j)) {
fmt.Printf("%d is prime\n", i);
}
}
}
當(dāng)上述代碼被編譯和執(zhí)行時(shí),它產(chǎn)生了以下結(jié)果:
2 is prime 3 is prime 5 is prime 7 is prime 11 is prime 13 is prime 17 is prime 19 is prime 23 is prime 29 is prime 31 is prime 37 is prime 41 is prime 43 is prime 47 is prime 53 is prime 59 is prime 61 is prime 67 is prime 71 is prime 73 is prime 79 is prime 83 is prime 89 is prime 97 is prime
- Go語(yǔ)言基礎(chǔ)for循環(huán)語(yǔ)句的用法及示例詳解
- 詳解如何在Go語(yǔ)言中循環(huán)數(shù)據(jù)結(jié)構(gòu)
- Go語(yǔ)言循環(huán)遍歷含有中文的字符串的方法小結(jié)
- Go語(yǔ)言中for循環(huán)的經(jīng)典案例分析
- 一文帶你熟悉Go語(yǔ)言中的for循環(huán)
- Go語(yǔ)言之fo循環(huán)與條件判斷
- 一文深入探索Go語(yǔ)言中的循環(huán)結(jié)構(gòu)
- Go語(yǔ)言中循環(huán)語(yǔ)句使用的示例詳解
- 一篇文章讓你學(xué)會(huì)Go語(yǔ)言循環(huán)語(yǔ)句
相關(guān)文章
Golang等多種語(yǔ)言轉(zhuǎn)數(shù)組成字符串舉例詳解
今天寫(xiě)代碼遇到數(shù)組轉(zhuǎn)換成字符串操作,下面這篇文章主要給大家介紹了關(guān)于Golang等多種語(yǔ)言轉(zhuǎn)數(shù)組成字符串的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-05-05
Go語(yǔ)言fsnotify接口實(shí)現(xiàn)監(jiān)測(cè)文件修改
這篇文章主要為大家介紹了Go語(yǔ)言fsnotify接口實(shí)現(xiàn)監(jiān)測(cè)文件修改的示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-06-06
解決Golang中g(shù)oroutine執(zhí)行速度的問(wèn)題
這篇文章主要介紹了解決Golang中g(shù)oroutine執(zhí)行速度的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-05-05
Golang利用Template模板動(dòng)態(tài)生成文本
Go語(yǔ)言中的Go?Template是一種用于生成文本輸出的簡(jiǎn)單而強(qiáng)大的模板引擎,它提供了一種靈活的方式來(lái)生成各種格式的文本,下面我們就來(lái)看看具體如何使用Template實(shí)現(xiàn)動(dòng)態(tài)文本生成吧2023-09-09
Go語(yǔ)言中g(shù)oroutine和WaitGroup的使用示例詳解
goroutine 是Go中一個(gè)輕量級(jí)的線(xiàn)程, 只需要一個(gè)go關(guān)鍵字就可以創(chuàng)建一個(gè)goroutine,這篇文章主要介紹了Go語(yǔ)言中g(shù)oroutine和WaitGroup的使用,需要的朋友可以參考下2023-03-03

