Menu
Coddy logo textTech

İfadesiz `switch`

Coddy'nin GO Journey'sinin Temeller bölümünün bir parçası. Ders 41 / 109.

Go'da, anahtar kelimeden sonra bir ifade içermeyen switch deyimi kullanabiliriz. Bu, birden çok koşulu düzenli bir şekilde değerlendirmek istediğimizde kullanışlıdır.

Bir kişiyi yaşına göre kategorilere ayıran bir program oluşturalım:

age := 25
    
switch {
case age < 13:
    fmt.Println("Child")
case age < 20:
    fmt.Println("Teenager")
case age < 30:
    fmt.Println("Young Adult")
default:
    fmt.Println("Adult")
}

Bu kod çalıştırıldıktan sonra program her durum koşulunu sırayla kontrol eder. Yaşımız 25 olduğundan 13'ten veya 20'den küçük değildir, ancak 30'dan küçüktür; bu nedenle üçüncü durum eşleşir. Ekranda "Young Adult" metni görünecektir:

Young Adult

switch sonrasında expression olmadan, her case'in true veya false olarak değerlendirilen bir boolean koşula dönüştüğüne dikkat et. true olarak değerlendirilen ilk case, kod bloğunu çalıştırır.

Durumlardan hiçbiri eşleşmezse default durumu çalıştırılır. Örneğimizde, yaş 35 olsaydı çıktı "Adult" olurdu.

challenge icon

Görev

Kolay

Bu mücadelede, bir ifade olmadan switch deyimini kullanma pratiği yapacaksın. Bu tür bir switch, if-else deyimlerini tekrarlamadan birden çok koşulu değerlendirmek istediğinde kullanışlıdır.

Geçerli saati (24 saatlik biçimde) temsil eden timeOfDay değişkenini sağladık. Görevin, günün saatine göre uygun bir selamlama yazdırmak için ifadesiz switch deyimini tamamlamaktır.

Bu aralıkları kullan ve tam olarak şu mesajları yazdır:

  • 5 ile 11 arası: Good morning!
  • 12 ile 17 arası: Good afternoon!
  • 18 ile 21 arası: Good evening!
  • diğer herhangi bir saat: Hello! (default durumu zaten yazılmıştır)

timeOfDay = 14 olduğunda program Good afternoon! yazdırır.

Kendin dene

package main

import "fmt"

func main() {
	// Bu, 24 saatlik formatta (0-23) mevcut saati temsil eder
	timeOfDay := 14 // Bu 2:00 PM
	
	// TODO: İfade olmadan switch ifadesini tamamlayın
	// günün saatine göre uygun selamlamayı yazdırmak için
	switch {
	// Case'lerinizi buraya ekleyin
	
	
	
	default:
		fmt.Println("Hello!")
	}
}
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Temeller bölümündeki tüm dersler

Kendi başına pratik yap: Online Go derleyicisi