Go switch operatori
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
switchifodasining qiymati har bircaseqiymati bilan solishtiriladi- Agar moslik topilsa, tegishli kod bloki bajariladi
defaultkalit so‘zi ixtiyoriy. U hech bircasemos 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
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
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
Go mashqlari
W3Schools Pathfinder
Yutuqlaringizni kuzating – bu bepul!
