English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Go言語のforループは、特定の回数を実行するループ制御文です。Go言語では、このforループは異なる形式で使用できます。これらの形式には:
1.シンプルなforループ私たちは他のプログラミング言語(例えばC、C ++、Java、C#などで使用される似たものです。
文法:
for initialization; condition; post{ // 文.... }
ここでは、
の初期化(initialization)文はオプションで、ループの始めに実行されるものです。初期化文は常にシンプルな文の中に位置しており、例えば変数の宣言、インクリメントまたはアサイン文、または関数呼び出しです。
条件(condition)文は、ループの各イテレーションの始めに計算される布尔表現を含んでいます。条件文の値がtrueの場合、ループを実行します。
post文はforループの本体の後に実行されます。post文の後、条件文の値がfalseであるかどうかを再計算し、ループが終了します。
//forループを使用します。 package main import "fmt" //メイン関数 func main() { // for ループ //このループはi = 0の時に実行を開始し、i<4条件が真 //post文はi++ for i := 0; i < 4; i++{ fmt.Printf("w3codebox\n") } }
出力:
w3codebox w3codebox w3codebox w3codebox
2. forループを無限ループとして使用:forループからすべての3つの表現を削除することで、forループは無限ループとしても使用できます。ユーザーがforループに条件文を書かない場合、これは条件文がtrueであることを意味し、ループは無限ループに入ります。
文法:
for{ // 文... }
// 無限ループを使用します。 package main import "fmt" func main() { // 無限ループ for { fmt.Printf("w3codebox\n") } }
出力:
w3codebox w3codebox w3codebox w3codebox w3codebox w3codebox w3codebox w3codebox w3codebox w3codebox ...........
3. forループをwhileループとして使用: forループはまたwhileループとして使用できます。このループは、指定された条件が真になるまで実行されます。指定された条件の値がfalseの場合、ループは終了します。
文法:
for condition{ //文.. }
//forループとwhileループは同じです package main import "fmt" func main() { //whileループ //forループは実行され //i <3条件が真 i:= 0 for i < 3 { i += 2 } fmt.Println(i) }
出力:
4
4. forループのシンプルな範囲:また、forループの中で範囲を使用します。
文法:
for i, j:= range rvariable{ // 文.. }
ここでは、
iとjはイテレーション値を割り当てる変数です。これらはイテレーション変数とも呼ばれます。
第2つの変数、つまりjはオプションです。
範囲表現はループの前に一度評価されます。
package main import "fmt" func main() { //ここではrvariableは配列です。 rvariable:= []string{"GFG", "Geeks", "w"}3codebox"} //iとjはrvariableの値を格納します //iは単一の文字列の合計のインデックスを格納します //jは与えられた配列の単一の文字列を格納します for i, j:= range rvariable { fmt.Println(i, j) } }
出力:
0 GFG 1 Geeks 2 w3codebox
5. 文字列に対してforループを使用: forループは文字列のUnicodeコードポイントを巡回できます。
文法:
for index, chr:= range str{ // 文.. }
ここでは、インデックスはUTF-8エンコードされたコードポイントの最初のバイトを格納する変数であり、chrはは与えられた文字列の文字を格納する変数であり、str文字列です。
package main import "fmt" func main() { // 文字列はforループの範囲として for i, j := range "XabCd" { fmt.Printf("%U のインデックス値が %d\n", j, i) } }
出力:
U+0058 のインデックス値が 0 U+0061 のインデックス値が 1 U+0062 のインデックス値が 2 U+0043 のインデックス値が 3 U+0064 のインデックス値が 4
6. mapに対してforループを使用: forループは巡回できますmapのキーと値のペア。
文法:
for key, value := range map { // 文.. }
package main import "fmt" func main() { 22 33: "GFG", 44: "w3codebox", } for key, value := range mmap { fmt.Println(key, value) } }
出力:
22 Geeks 33 GFG 44 w3codebox
7. Forチャネル: forループは、チャネルに送信された順序の値を閉じるまで巡回できます。
文法:
for item := range Chnl { // 文.. }
package main import "fmt" func main() { // channelの使用 chnl := make(chan int) go func() { chnl <- 100 chnl <- 1000 chnl <- 10000 chnl <- 100000 close(chnl) }() for i := range chnl { fmt.Println(i) } }
出力:
100 1000 10000 100000
重要な事項:
forループの3つの文では括弧を使用しないことです。
forループでは大括弧は必須です。
左括弧はpost文のある行と同じ行に配置されるべきです。
配列、文字列、スライス、またはマップ集合が空の場合、forループはエラーを投げずにそのプロセスを続行します。つまり、配列、文字列、スライス、またはマップがnilの場合、forループの反復回数は0です。