Ana içeriğe geç
Modül 2 · Ders 2 ders 5Kurstaki 7/50~10 min
Modül dersleri (2/5)

for: tek döngü

Go'nun tek döngü yapısı vardır: for. Hayır while, hayır do-while, hayır foreach (bir sonraki derste gelecek range). Tek bir anahtar kelime, üç form sayesinde tüm durumları kapsar.

for'nin üç biçimi

Klasik üç cümlecik formu

C/Java ile aynı:

Go
for i := 0; i < 5; i++ {
    fmt.Println(i)
}

i kapsamı for ile sınırlıdır. Üç madde isteğe bağlıdır (yapabilirsiniz) herhangi birini atlayın) ancak orta seviye bir tanesini atlarsanız ; kalır.

"while" formu: yalnızca koşul

Go'da while, tek bir bool ifadesine sahip bir for'dir:

Go
i := 0
for i < 5 {
    fmt.Println(i)
    i++
}

Sonsuz biçim

Cümleler olmadan döngü asla sonlanmaz (break/return olmadığı sürece):

Go
for {
    if exitCondition() {
        break
    }
    doWork()
}

Olay işleme döngüleri, sunucular ve yeniden deneme politikalarının modelidir.

break, continue ve etiketler

break en içteki döngüden çıkar, continue bir sonraki yinelemeye atlar:

Go
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
}

İç içe geçmiş döngülerden çıkmak için etiketler vardır (nadir ama kullanışlıdır):

Go
Esterno:
for i := 0; i < 3; i++ {
    for j := 0; j < 3; j++ {
        if i*j == 4 {
            break Esterno   // esce da entrambi
        }
    }
}

C'deki gibi , operatörü yok

Go'da for i, j := 0, 10; i < j; i, j = i+1, j-1 yazamazsınız: gönderi ifadesi birden fazla atamayı kabul etmiyor. Go'yu kullan çoklu atama sözdizimi:

Go
for i, j := 0, 10; i < j; i, j = i+1, j-1 {
    fmt.Println(i, j)
}

Bunun yerine bu işe yarar çünkü i, j = i+1, j-1 tek bir çoklu atama

Deneyin

Egzersiz#go.m2.l2.e1
Denemeler: 0Yükleniyor…

0'dan 4'e kadar olan sayıları klasik üç cümlecikle yazdırın.

Düzenleyici yükleniyor…
İpucu göster

'başlangıç ​​için; durum; post { ... }` — burada init `i := 0`dır.

3 denemeden sonra çözüm mevcut

Egzersiz#go.m2.l2.e2
Denemeler: 0Yükleniyor…

for'un 'while' formunu kullanarak 1'den 10'a kadar olan tüm sayıları toplayın.

Düzenleyici yükleniyor…
İpucu göster

'while' formu: 'for <condition> { ... }'.

3 denemeden sonra çözüm mevcut

Quiz#go.m2.l2.e3
Hazır

Hangi form Go'da sonsuz bir döngüyü temsil eder?

Go
// (a) for i := 0; i < 10; i++ { ... }
// (b) for cond { ... }
// (c) for { ... }
Cevap seçenekleri

Özet

  • Üç biçimdeki for tek bir anahtar kelime: klasik, süre, sonsuz.
  • break / continue isteğe bağlı olarak iç içe döngüler için bir etiketle birlikte.
  • for'dan önce Name: etiketini kullanın, dikkatli kullanın.
  • Operatör olarak , yok: i, j = ..., ... çoklu atamasını kullanın.