モジュールのレッスン (2/5)
for: 唯一のループ
Go には 単一ループ構造: for があります。いいえ while、いいえ
do-while、いいえ foreach (次のレッスンで説明されます)
range)。 3 つの形式により、1 つのキーワードですべてのケースをカバーできます。
for の 3 つの形式
古典的な 3 節形式
C/Java と同じ:
for i := 0; i < 5; i++ {
fmt.Println(i)
}i のスコープは for に制限されています。 3 つの句はオプションです (次のように指定できます)。
いずれかを省略します)。ただし、中間のものを省略すると、; が残ります。
「while」形式: 条件のみ
Go では、 while は単一の bool 式を含む単純な for です。
i := 0
for i < 5 {
fmt.Println(i)
i++
}無限の形
句がないと、ループは終了しません (break/return を除く)。
for {
if exitCondition() {
break
}
doWork()
}これは、イベント処理ループ、サーバー、再試行ポリシーのパターンです。
break、continue およびラベル
break は最も内側のループを終了し、continue は次の反復にスキップします。
for i := 0; i < 10; i++ {
if i%2 == 0 {
continue // salta i pari
}
if i > 7 {
break // ferma il ciclo
}
fmt.Println(i) // 1 3 5 7
}ネストされたループを終了するには、ラベルがあります (まれですが便利です)。
Esterno:
for i := 0; i < 3; i++ {
for j := 0; j < 3; j++ {
if i*j == 4 {
break Esterno // esce da entrambi
}
}
}C のような , 演算子はありません
Go では for i, j := 0, 10; i < j; i, j = i+1, j-1 を記述することはできません。
後置式は複数の代入を受け入れません。 Go を使用する
複数の代入構文:
for i, j := 0, 10; i < j; i, j = i+1, j-1 {
fmt.Println(i, j)
}i, j = i+1, j-1 は単一であるため、これは代わりに 機能します
複数の割り当て。
試してみてください
0 から 4 までの数値を古典的な 3 句の for を使用して出力します。
ヒントを表示
`初期化の場合;条件; post { ... }` — ここでの init は `i := 0` です。
3 回の試行後に解決策が利用可能になります
for の 'while' 形式を使用して、1 から 10 までのすべての数値を合計します。
ヒントを表示
「while」形式: `for <条件> { ... }`。
3 回の試行後に解決策が利用可能になります
Go の無限ループを表す形式はどれですか?
// (a) for i := 0; i < 10; i++ { ... }
// (b) for cond { ... }
// (c) for { ... }要約
- 3 つの形式 (classic、while、infinite) を持つ単一のキーワード
for。 break/continueオプションでネストされたループのラベルを付けます。forの前にName:というラベルを付けます。使用は控えめにします。- 演算子として
,を使用しません。複数の割り当てi, j = ..., ...を使用します。