Özet - Kontrol akışı
- Go kursu
- Başlangıç
- Ders 40/90
- 4 dk
if, for ve switch'i birleştirerek bir puan hesaplayıcı yazarsın.
Kontrol akışı özeti
Karar: if / else if / else (koşul bool olmalı, kısa ifade alabilir) ve switch (virgüllü case, koşulsuz switch, nadiren fallthrough). Döngü: tek anahtar kelime for — sayaçlı, koşullu, sonsuz ve range. Akış kontrolü: break, continue, etiketler.
for i := range 15 {
switch {
case i%15 == 0:
fmt.Println("FizzBuzz")
case i%3 == 0:
fmt.Println("Fizz")
}
}Erken dönüş
Go kodunda iç içe if-else yerine "erken dönüş" tercih edilir: hatalı ya da özel durumlar başta ele alınıp fonksiyondan çıkılır, ana akış girintisiz kalır.
func indirim(tutar float64, uye bool) float64 {
if tutar <= 0 {
return 0
}
if !uye {
return tutar
}
return tutar * 0.9
}Uygulama FizzBuzz
1'den 15'e kadar sayılar için: 15'e bölünüyorsa FizzBuzz, 3'e bölünüyorsa Fizz, 5'e bölünüyorsa Buzz, yoksa sayının kendisini yazdır. Hepsini tek satırda boşlukla ayırarak yazdır (fmt.Print ile, sonunda fmt.Println()).
Başlangıç kodu
package main
import "fmt"
func main() {
// buraya yaz
}Örnek çözüm
package main
import "fmt"
func main() {
for i := 1; i <= 15; i++ {
switch {
case i%15 == 0:
fmt.Print("FizzBuzz ")
case i%3 == 0:
fmt.Print("Fizz ")
case i%5 == 0:
fmt.Print("Buzz ")
default:
fmt.Print(i, " ")
}
}
fmt.Println()
}Beklenen çıktı
1 2 Fizz 4 Buzz Fizz 7 8 Fizz Buzz 11 Fizz 13 14 FizzBuzz
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 FizzBuzz'da <code>i%15 == 0</code> kontrolü neden ilk sırada olmalıdır?
- 15'in katları 3'e de bölünür; önce 3 gelirse "Fizz" yazılır Doğru cevap
- Daha hızlıdır
- Go bunu zorunlu tutar
- Sıra önemli değildir
Açıklama: Koşulsuz switch'te ilk doğru case çalışır; en özel koşul en üste yazılır.
2 Sayılarla range
for i := ____ 3 {
fmt.Println(i) // 0 1 2
}
for i := range 3 {
fmt.Println(i) // 0 1 2
}
Açıklama: Go 1.22'den beri range bir tam sayı üzerinde 0'dan n-1'e kadar sayar.
3 Grubun özeti
| Kavram | Anlamı |
|---|---|
if-else |
Karar |
switch |
Çok yollu karar |
for |
Tüm döngüler |
break / continue |
Döngü kontrolü |