Loading...

Шарттуу конструкциялар

 

Шарттуу конструкциялар белгилүү бир шарттын чындыгын текшерет жана текшерүүнүн жыйынтыгына жараша программанын жүрүшүн жолдордун бири боюнча багыттоого мүмкүндүк берет.

эгерде...башка

if конструкциясы шартты кабыл алат - bool маанисин кайтарган туюнтма . Ал эми бул шарт чын болсо, анда инструкциялардын кийинки блогу аткарылат.

1

2

3

4

5

6

7

8

9

10

11

package main

import "fmt"

 

func main() {

     

    a := 6

    b := 7

    if a < b {

        fmt.Println("a is less than b")

    }

}

Шарт if операторунан кийин коюлат. Бул учурда а өзгөрмөнүн мааниси б өзгөрмөнүн маанисинен аз экендиги текшерилет. Бул учурда a өзгөрмөнүн мааниси b өзгөрмөнүн маанисинен чындап аз болгондуктан, башкача айтканда, шарт чындыкты кайтарат, анда консолго билдирүү басып чыгарган коддун кийинки блогу аткарылат.

Эгерде шарт туура эмес болсо, аткарылуучу альтернативдик логиканы көрсөтүү зарыл болсо, анда else оператору кошулат:

1

2

3

4

5

6

7

8

9

10

1

12

13

package main

import "fmt"

 

func main() {

     

    a := 6

    b := 7

    if a < b {

        fmt.Println("a меньше b")

    }else{

        fmt.Println("a больше b")

    }

}

Ошентип, if операторунан кийинки шарттуу туюнтма чын болсо, анда if операторунан кийинки блок, эгер ал жалган болсо, elseдон кийинки блок аткарылат.

Эгер бир нече альтернативаларды текшерүү керек болсо, анда else if билдирүүлөрүн кошо аласыз :

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

package main

import "fmt"

 

func main() {

     

    a := 8

    b := 8

    if a < b {

        fmt.Println("a меньше b")

    }else if a > b{

        fmt.Println("a больше b")

    } else{

        fmt.Println("a равно b")

    }

}

Ошентип, эгерде ifден кийинки туюнтма чын болсо, анда if блогу аткарылат. Болбосо, else if белгисинен кийинки туюнтма белгиленет. Эгер ал чын болсо, анда else if блогу аткарылат. Эгерде ал жалган болсо, анда else блогу аткарылат.

Эгерде билдирүүлөр дагы көп болушу мүмкүн:

1

2

3

4

5

6

7

if a ==9 {

    fmt.Println("a = 9")

}else if a == 8{

    fmt.Println("a = 8")

} else if a == 7{

    fmt.Println("a == 7")

}

которуу

Которуу конструкциясы кандайдыр бир туюнтуунун маанисин текшерет. Кейс билдирүүлөрү салыштырыла турган маанилерди аныктайт . Эгерде case операторунан кийинки маани коммутатордон келген туюнтумдун маанисине дал келсе, анда бул кейс блогунун коду аткарылат.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

package main

import "fmt"

 

func main() {

     

    a := 8

    switch(a) {

        case 9:

            fmt.Println("a = 9")

        case 8:

            fmt.Println("a = 8")

        case 7:

            fmt.Println("a = 7")

    }

}

Которуу конструкциясы туюнтма катары a өзгөрмөсүн колдонот. Анын мааниси иш билдирүүлөрүнүн кийинки маанилери менен ырааттуу түрдө салыштырылат. a өзгөрмөсү 8ге барабар болгондуктан, блок аткарылат case 8: fmt.Println("a = 8"). Калган иш блоктору аткарылбайт.

Бул учурда, switch операторунан кийин, биз маанини кайтарган каалаган туюнтманы көрсөтө алабыз. Мисалы, кошуу операциясы:

бир

2

3

4

5

6

7

8

9

a := 7

switch(a + 2) {

    case 9:

        fmt.Println("9")

    case 8:

        fmt.Println("8")

    case 7:

        fmt.Println("7")

}

Ошондой эле, которуштуруу конструкциясы кошумча демейки блокту камтышы мүмкүн , эгерде case операторлорунун бири да каалаган маанини камтыбаса аткарылат:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

package main

import "fmt"

 

func main() {

     

    a := 87

    switch(a) {

        case 9:

            fmt.Println("a = 9")

        case 8:

            fmt.Println("a = 8")

        case 7:

            fmt.Println("a = 7")

        default:

            fmt.Println("значение переменной a не определено")

    }

}

Сиз ошондой эле учурда билдирүүдөн кийин бир нече маанини көрсөтсөңүз болот:

1

2

3

4

5

6

7

8

9

10

a := 5

switch(a) {

    case 9: fmt.Println("a = 9")

    case 8: fmt.Println("a = 8")

    case 7: fmt.Println("a = 7")

    case 6, 5, 4:

        fmt.Println("a = 6 или 5 или 4, но это не точно")

    default:

        fmt.Println("значение переменной a не определено")

}