09 / 68

Boolean Expression

Mantiqiy ifodalar

Go dasturlash tilida mantiqiy ifoda (boolean expression) — bu hisoblanganda faqat ikkita mumkin bo'lgan qiymatdan birini: true (rost) yoki false (yolg'on) qaytaruvchi ifodadir.

Mantiqiy ifodalar dasturning keyingi yo'nalishini belgilovchi if...else shartlari va sikllarning (for) poydevori hisoblanadi.


1. Boolean ma'lumot turi

Go tilida mantiqiy o'zgaruvchilarni yaratish uchun bool kalit so'zidan foydalaniladi:

example.go
package main

import "fmt"

func main() {
    var boolTrue bool = true
    var boolFalse bool = false

    fmt.Println("Mantiqiy qiymatlar:", boolTrue, "va", boolFalse)
}

Natija:

kod
Mantiqiy qiymatlar: true va false

2. Taqqoslash operatorlari orqali mantiqiy ifodalar

Ikki qiymatni o'zaro solishtirganda taqqoslash operatorlari mantiqiy ifodani hosil qiladi:

example.go
number1 := 9
number2 := 3

result := number1 > number2 // true

Bu yerda number1 > number2 ifodasi hisoblanib, natija true bo'ladi va result o'zgaruvchisiga o'zlashtiriladi.

Taqqoslash operatorlari jadvali

OperatorTavsifMisolNatija
==Tenglik (Equal to)3 == 5false
!=Teng emaslik (Not equal to)3 != 5true
>Katta (Greater than)7 > 4true
<Kichik (Less than)7 < 4false
>=Katta yoki teng5 >= 5true
<=Kichik yoki teng4 <= 2false

Misol: Taqqoslash operatorlari amalda

example.go
package main

import "fmt"

func main() {
    number1 := 12
    number2 := 20

    var result bool

    result = (number1 == number2)
    fmt.Printf("%d == %d : %t\n", number1, number2, result)

    result = (number1 != number2)
    fmt.Printf("%d != %d : %t\n", number1, number2, result)

    result = (number1 > number2)
    fmt.Printf("%d > %d : %t\n", number1, number2, result)

    result = (number1 < number2)
    fmt.Printf("%d < %d : %t\n", number1, number2, result)
}

Natija:

kod
12 == 20 : false
12 != 20 : true
12 > 20 : false
12 < 20 : true

3. Mantiqiy operatorlar orqali murakkab ifodalar

Bir nechta mantiqiy shartlarni birlashtirish yoki inkor qilish uchun mantiqiy operatorlar ishlatiladi:

OperatorNomiTavsifMisol
&&Mantiqiy VA (AND)Barcha ifodalar true bo'lsagina true qaytaradi(5 > 2) && (4 > 1) → true
||Mantiqiy YOKI (OR)Kamida bitta ifoda true bo'lsa true qaytaradi(5 < 2) || (4 > 1) → true
!Mantiqiy INKOR (NOT)Natijani teskarisiga o'giradi (true → false)!(5 > 2) → false

Misol: Mantiqiy operatorlarni qo'llash

example.go
package main

import "fmt"

func main() {
    number1 := 6
    number2 := 12
    number3 := 18

    var result bool

    // && operatori - ikkala shart ham true bo'lishi kerak
    result = (number1 < number2) && (number2 < number3)
    fmt.Println("AND natijasi:", result) // true

    // || operatori - kamida bitta shart true bo'lishi yetarli
    result = (number1 > number2) || (number2 < number3)
    fmt.Println("OR natijasi:", result) // true

    // ! operatori - qiymatni teskarisiga aylantiradi
    result = !(number1 < number2)
    fmt.Println("NOT natijasi:", result) // false
}

Natija:

kod
AND natijasi: true
OR natijasi: true
NOT natijasi: false

[!TIP] Go tilida && va || operatorlari qisqa tutashuv (short-circuit evaluation) usulida ishlaydi:

  • && amallarida birinchi shart false bo'lsa, ikkinchi shart hatto hisoblab o'tirilmaydi (chunki umumiy natija baribir false).
  • || amallarida birinchi shart true bo'lsa, ikkinchi shart hisoblab o'tirilmaydi (chunki natija allaqachon true).