Go sikllar


for sikli kod blokini belgilangan marta takror bajaradi.

for sikli Go tilidagi yagona sikl turidir.


ULASHISH

Go for sikli

Sikllar bir xil kodni har safar boshqa qiymat bilan qayta-qayta bajarish kerak bo‘lganda qulay.

Siklning har bir bajarilishi iteratsiya deb ataladi.

for sikli uchtagacha ko‘rsatma qabul qilishi mumkin:

Sintaksis

for statement1; statement2; statement3 {    // code to be executed for each iteration }

statement1 Sikl hisoblagichining boshlang‘ich qiymatini belgilaydi.

statement2 Har bir iteratsiyada hisoblanadi. Agar natija TRUE bo‘lsa, sikl davom etadi. Agar FALSE bo‘lsa, sikl tugaydi.

statement3 Sikl hisoblagichi qiymatini oshiradi.

Eslatma: Bu ko‘rsatmalar sikl argumentlari sifatida yozilishi shart emas. Biroq ular kodda qandaydir shaklda mavjud bo‘lishi kerak.


for sikliga misollar

1-misol

Ushbu misol 0 dan 4 gacha bo‘lgan sonlarni chiqaradi:

package main import "fmt" func main() {   for i:=0; i < 5; i++ {     fmt.Println(i)   } }

Natija:

0
1
2
3
4
O‘zingiz sinab ko‘ring »

1-misol izohi

  • i:=0; - Sikl hisoblagichini (i) initsializatsiya qiladi va boshlang‘ich qiymatini 0 ga tenglaydi
  • i < 5; - i 5 dan kichik ekan, sikl davom etadi
  • i++ - Har bir iteratsiyada sikl hisoblagichi qiymatini 1 ga oshiradi

2-misol

Ushbu misol 100 gacha o‘ntadan sanaydi:

package main import "fmt" func main() {   for i:=0; i <= 100; i+=10 {     fmt.Println(i)   } }

Natija:

0
10
20
30
40
50
60
70
80
90
100
O‘zingiz sinab ko‘ring »

2-misol izohi

  • i:=0; - Sikl hisoblagichini (i) initsializatsiya qiladi va boshlang‘ich qiymatini 0 ga tenglaydi
  • i <= 100; - i 100 dan kichik yoki unga teng ekan, sikl davom etadi
  • i+=10 - Har bir iteratsiyada sikl hisoblagichi qiymatini 10 ga oshiradi


continue operatori

continue operatori sikldagi bir yoki bir nechta iteratsiyani o‘tkazib yuborish uchun ishlatiladi. Shundan so‘ng sikl keyingi iteratsiyadan davom etadi.

Misol

Ushbu misolda 3 qiymati o‘tkazib yuboriladi:

package main import "fmt" func main() {   for i:=0; i < 5; i++ {     if i == 3 {       continue     }    fmt.Println(i)   } }

Natija:

0
1
2
4
O‘zingiz sinab ko‘ring »

break operatori

break operatori sikl bajarilishini to‘xtatish/tugatish uchun ishlatiladi.

Misol

Ushbu misolda i 3 ga teng bo‘lganda sikldan chiqiladi:

package main import "fmt" func main() {   for i:=0; i < 5; i++ {     if i == 3 {       break     }    fmt.Println(i)   } }

Natija:

0
1
2
O‘zingiz sinab ko‘ring »

Eslatma: continue va break odatda shartlar bilan birga ishlatiladi.


Ichma-ich sikllar

Bir siklni boshqa sikl ichiga joylashtirish mumkin.

Bu yerda "ichki sikl" "tashqi sikl"ning har bir iteratsiyasi uchun bir marta bajariladi:

Misol

package main import "fmt" func main() {   adj := [2]string{"big", "tasty"}   fruits := [3]string{"apple", "orange", "banana"}   for i:=0; i < len(adj); i++ {     for j:=0; j < len(fruits); j++ {       fmt.Println(adj[i],fruits[j])     }   } }

Natija:

big apple
big orange
big banana
tasty apple
tasty orange
tasty banana
O‘zingiz sinab ko‘ring »

range kalit so‘zi

range kalit so‘zi massiv, slice yoki map elementlarini osonroq aylanib chiqish (iteratsiya qilish) uchun ishlatiladi. U indeksni ham, qiymatni ham qaytaradi.

range kalit so‘zi quyidagicha ishlatiladi:

Sintaksis

for index, value := range array|slice|map {    // code to be executed for each iteration }

Misol

Ushbu misolda massivni aylanib chiqish va har bir elementning indeksi hamda qiymatini chiqarish uchun range kalit so‘zidan foydalaniladi (idx indeksni, val qiymatni saqlaydi):

package main import "fmt" func main() {   fruits := [3]string{"apple", "orange", "banana"}   for idx, val := range fruits {      fmt.Printf("%v\t%v\n", idx, val)   } }

Natija:

0      apple
1      orange
2      banana
O‘zingiz sinab ko‘ring »

Maslahat: Faqat qiymatni yoki faqat indeksni ko‘rsatish uchun ikkinchisini pastki chiziq (_) yordamida tashlab ketishingiz mumkin.

Misol

Bu yerda indekslarni tashlab ketmoqchimiz (idx indeksni, val qiymatni saqlaydi):

package main import "fmt" func main() {   fruits := [3]string{"apple", "orange", "banana"}   for _, val := range fruits {      fmt.Printf("%v\n", val)   } }

Natija:

apple
orange
banana
O‘zingiz sinab ko‘ring »

Misol

Bu yerda qiymatlarni tashlab ketmoqchimiz (idx indeksni, val qiymatni saqlaydi):

package main import "fmt" func main() {   fruits := [3]string{"apple", "orange", "banana"}   for idx, _ := range fruits {      fmt.Printf("%v\n", idx)   } }

Natija:

0
1
2
O‘zingiz sinab ko‘ring »

Go mashqlari

Mashqlar yordamida o‘zingizni sinang

Mashq:

i qiymati 6 dan kichik ekan, uni chiqaring.

package main   
import "fmt" 
func main() {
   i:=0; i < 6;  {
    fmt.Println(i)
  }
}

Mashqni boshlash


W3Schools Pathfinder

Yutuqlaringizni kuzating – bu bepul!