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ı:
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:
i := 0
for i < 5 {
fmt.Println(i)
i++
}Sonsuz biçim
Cümleler olmadan döngü asla sonlanmaz (break/return olmadığı sürece):
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:
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):
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:
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
0'dan 4'e kadar olan sayıları klasik üç cümlecikle yazdırın.
İpucu göster
'başlangıç için; durum; post { ... }` — burada init `i := 0`dır.
3 denemeden sonra çözüm mevcut
for'un 'while' formunu kullanarak 1'den 10'a kadar olan tüm sayıları toplayın.
İpucu göster
'while' formu: 'for <condition> { ... }'.
3 denemeden sonra çözüm mevcut
Hangi form Go'da sonsuz bir döngüyü temsil eder?
// (a) for i := 0; i < 10; i++ { ... }
// (b) for cond { ... }
// (c) for { ... }Özet
- Üç biçimdeki
fortek bir anahtar kelime: klasik, süre, sonsuz. break/continueisteğe bağlı olarak iç içe döngüler için bir etiketle birlikte.for'dan önceName:etiketini kullanın, dikkatli kullanın.- Operatör olarak
,yok:i, j = ..., ...çoklu atamasını kullanın.