Go switch operatori


ULASHISH

switch operatori

Bajariladigan ko‘plab kod bloklaridan birini tanlash uchun switch operatoridan foydalaning.

Go tilidagi switch operatori C, C++, Java, JavaScript va PHP tillaridagiga o‘xshaydi. Farqi shundaki, u faqat mos kelgan case’ni bajaradi, shuning uchun break operatoriga ehtiyoj yo‘q.


Bir qiymatli switch sintaksisi

Sintaksis

switch expression { case x:    // code block case y:    // code block case z: ... default:    // code block }

U quyidagicha ishlaydi:

  • Ifoda bir marta hisoblanadi
  • switch ifodasining qiymati har bir case qiymati bilan solishtiriladi
  • Agar moslik topilsa, tegishli kod bloki bajariladi
  • default kalit so‘zi ixtiyoriy. U hech bir case mos kelmasa, bajariladigan kodni belgilaydi

Bir qiymatli switch misoli

Quyidagi misolda hafta kuni nomini aniqlash uchun hafta kuni raqamidan foydalaniladi:

Misol

package main import "fmt" func main() {   day := 4   switch day {   case 1:     fmt.Println("Monday")   case 2:     fmt.Println("Tuesday")   case 3:     fmt.Println("Wednesday")   case 4:     fmt.Println("Thursday")   case 5:     fmt.Println("Friday")   case 6:     fmt.Println("Saturday")   case 7:     fmt.Println("Sunday")   } }

Natija:

Thursday
O‘zingiz sinab ko‘ring »


default kalit so‘zi

default kalit so‘zi hech bir case mos kelmasa, bajariladigan kodni belgilaydi:

Misol

package main import "fmt" func main() {   day := 8   switch day {   case 1:     fmt.Println("Monday")   case 2:     fmt.Println("Tuesday")   case 3:     fmt.Println("Wednesday")   case 4:     fmt.Println("Thursday")   case 5:     fmt.Println("Friday")   case 6:     fmt.Println("Saturday")   case 7:     fmt.Println("Sunday")   default:     fmt.Println("Not a weekday")   } }

Natija:

Not a weekday
O‘zingiz sinab ko‘ring »

Barcha case qiymatlari switch ifodasi bilan bir xil tipda bo‘lishi kerak. Aks holda kompilyator xato beradi:

Misol

package main import "fmt" func main() {   a := 3   switch a {   case 1:     fmt.Println("a is one")   case "b":     fmt.Println("a is b")   } }

Natija:

./prog.go:11:2: cannot use "b" (type untyped string) as type int
O‘zingiz sinab ko‘ring »

Go mashqlari

Mashqlar yordamida o‘zingizni sinang

Mashq:

Quyidagi switch operatorini to‘ldirish uchun tushib qolgan qismlarni yozing.

package main   
import "fmt" 
func main() {
  var day = 2
  switch  {
  (1):
    fmt.Print("Saturday")
  (2):
    fmt.Print("Sunday")    
  }
}

Mashqni boshlash


W3Schools Pathfinder

Yutuqlaringizni kuzating – bu bepul!