13 / 68

while Loop

while sikli

Go dasturlash tilida ma'lum bir shart bajarilib turguncha kod blokini takrorlash uchun while sikli vazifasini for operatori orqali bajaramiz.

Boshqa tillardan (C++, Java, Python) farqli o'laroq, Go tilida alohida while kalit so'zi mavjud emas. Buning o'rniga Go tilining for operatori while siklining barcha imkoniyatlarini to'liq ta'minlaydi.

while siklining Godagi sintaksisi

example.go
for shart {
    // takrorlanadigan kod bloki
}

Bu yerda:

  • Har bir takrorlanishdan oldin shart tekshiriladi.
  • Agar shart true bo'lsa — sikl tanasi bajariladi va yana shart tekshiriladi.
  • Agar shart false bo'lsa — sikl o'z ishini yakunlaydi.

Go while siklining ishlash sxemasi


1. Misol: 1 dan 5 gacha bo'lgan sonlarni chiqarish

example.go
package main

import "fmt"

func main() {
    number := 1

    // number <= 5 bo'lib turguncha sikl aylanadi
    for number <= 5 {
        fmt.Println(number)
        number++
    }
}

Natija:

kod
1
2
3
4
5

Kod qanday ishladi?

  1. Boshlanishida number = 1. 1 <= 5 sharti true, shuning uchun 1 ekranga chiqadi va number++ uni 2 ga oshiradi.
  2. 2 <= 5 sharti true, 2 chiqadi va qiymat 3 ga oshadi.
  3. Bu holat number = 6 bo'lguniga qadar davom etadi. 6 <= 5 sharti false bo'lganda sikl tugaydi.

2. Misol: while sikli orqali karra jadvali tuzish

5 sonining 1 dan 10 gacha bo'lgan ko'paytirish jadvalini tuzamiz:

example.go
package main

import "fmt"

func main() {
    multiplier := 1

    for multiplier <= 10 {
        product := 5 * multiplier
        fmt.Printf("5 * %d = %d\n", multiplier, product)
        multiplier++
    }
}

Natija:

kod
5 * 1 = 5
5 * 2 = 10
5 * 3 = 15
5 * 4 = 20
5 * 5 = 25
5 * 6 = 30
5 * 7 = 35
5 * 8 = 40
5 * 9 = 45
5 * 10 = 50

3. Goda do...while siklini hosil qilish

Ko'pgina tillarda do...while sikli mavjud bo'lib, u shart bajarilishidan qat'i nazar kod blokini kamida bir marta ishga tushirish uchun qo'llaniladi.

Goda do...while operatori bo'lmasa-da, cheksiz for sikli va uning ichida if bilan break qo'llash orqali bu mantiqni osonlikcha amalga oshirish mumkin:

example.go
package main

import "fmt"

func main() {
    number := 1

    for {
        fmt.Println(number)
        number++

        // Shart bajarilganda siklni to'xtatamiz
        if number > 5 {
            break
        }
    }
}

Natija:

kod
1
2
3
4
5

Bu usulda kod bloki (fmt.Println(number)) avval bajariladi, keyin shart tekshiriladi — aynan do...while kabi!