Rumah  >  Artikel  >  pembangunan bahagian belakang  >  kawalan proses golang

kawalan proses golang

WBOY
WBOYasal
2023-05-13 11:12:37406semak imbas

Golang ialah bahasa pengaturcaraan yang cekap dan moden yang menyediakan ciri yang kaya dalam kawalan proses. Artikel ini akan meneroka struktur kawalan aliran di Golang, termasuk pernyataan bersyarat, pernyataan gelung dan pernyataan lompat, untuk membantu pembaca memahami dan menggunakan struktur ini dengan lebih baik.

Pernyataan bersyarat

Pernyataan bersyarat di Golang termasuk penyataan jika, tukar penyataan dan pilih penyataan.

  1. kenyataan if

jika pernyataan digunakan untuk penghakiman bersyarat Sintaksnya adalah seperti berikut:

if condition {
    statement(s)
} else if condition {
    statement(s)
} else {
    statement(s)
}

di mana syarat ialah ungkapan bersyarat yang digunakan untuk penghakiman. benar dan salah. Jika keadaan adalah benar, blok pernyataan berikut jika dilaksanakan jika tidak, blok pernyataan dilangkau dan pernyataan seterusnya dilaksanakan.

Jika syarat diikuti oleh kata kunci else if, setiap ungkapan bersyarat akan dinilai mengikut tertib dan blok pernyataan pertama yang benar akan dilaksanakan. Jika semua ungkapan bersyarat adalah palsu, blok pernyataan berikutan yang lain dilaksanakan. Tanpa blok else, tiada pernyataan dilaksanakan jika syarat itu palsu.

Berikut ialah contoh pernyataan if:

package main

import "fmt"

func main() {
    var a int = 10
    if a < 20 {
        fmt.Printf("a 小于 20
")
    }
    fmt.Printf("a 的值为 : %d
", a)
}

Hasil output:

a 小于 20
a 的值为 : 10
  1. penyataan suis

penyataan suis ialah digunakan untuk pelbagai pertimbangan Bersyarat, sintaksnya adalah seperti berikut:

switch expression {
    case value1:
        statement(s)
    case value2:
        statement(s)
    case value3:
        statement(s)
    default:
        statement(s)
}

Antaranya, ungkapan ialah ungkapan yang digunakan untuk memadankan pemalar atau pembolehubah dalam klausa kes. Jika padanan berjaya, blok pernyataan yang sepadan dilaksanakan jika tidak, blok pernyataan dilangkau dan klausa kes seterusnya (jika ada) dilaksanakan.

Jika semua klausa kes tidak berjaya dipadankan, blok pernyataan berikut lalai akan dilaksanakan. Jika tiada klausa lalai, tiada pernyataan dilaksanakan.

Berikut ialah contoh pernyataan suis:

package main

import "fmt"

func main() {
    var grade string = "B"
    var marks int = 90

    switch marks {
        case 90:
            grade = "A"
        case 80:
            grade = "B"
        case 60, 70:
            grade = "C"
        default:
            grade = "D"
    }

    switch {
        case grade == "A" :
            fmt.Printf("优秀!
" )
        case grade == "B", grade == "C" :
            fmt.Printf("良好
" )
        case grade == "D" :
            fmt.Printf("及格
" )
        case grade == "F":
            fmt.Printf("不及格
" )
        default:
            fmt.Printf("差
" )
    }
    fmt.Printf("你的等级是 %s
", grade )
}

Hasil output:

良好!
你的等级是 B
  1. select statement

select statement is digunakan pada masa yang sama Untuk memantau berbilang saluran, sintaksnya adalah seperti berikut:

select {
    case communication clause 1:
        statement(s)
    case communication clause 2:
        statement(s)
    .............
    default:
        statement(s)
}

Antaranya, klausa komunikasi merujuk kepada saluran atau operasi saluran dengan arah, termasuk operasi penghantaran dan operasi penerimaan. Jika saluran mempunyai data yang boleh dibaca atau ditulis, blok pernyataan yang sepadan dilaksanakan jika tidak, saluran dilangkau dan klausa komunikasi seterusnya dilaksanakan. Jika tiada data boleh dibaca atau ditulis pada mana-mana saluran, blok pernyataan berikutan lalai dilaksanakan.

Berikut ialah contoh pernyataan pilihan:

package main

import "fmt"

func fibonacci(c, quit chan int) {
    x, y := 0, 1
    for {
        select {
        case c <- x:
            x, y = y, x+y
        case <-quit:
            fmt.Println("quit")
            return
        }
    }
}

func main() {
    c := make(chan int)
    quit := make(chan int)
    go func() {
        for i := 0; i < 10; i++ {
            fmt.Println(<-c)
        }
        quit <- 0
    }()
    fibonacci(c, quit)
}

Hasil keluaran:

0
1
1
2
3
5
8
13
21
34
quit

Penyataan gelung

Pernyataan gelung di Golang termasuk untuk pernyataan dan julat kenyataan .

  1. untuk pernyataan

Penyataan for digunakan untuk melaksanakan sekeping kod dalam gelung Sintaks adalah seperti berikut:

for init; condition; post {
    statement(s);
}

Antaranya , init digunakan untuk bila hendak memulakan gelung, keadaan Ia digunakan untuk menentukan sama ada gelung diteruskan, dan pos digunakan untuk mengawal operasi pembolehubah gelung.

Berikut ialah contoh pernyataan for:

package main

import "fmt"

func main() {
    var b int = 15
    var a int

    for i := 0; i < 10; i++ {
        fmt.Printf("i 的值为: %d
", i)
    }

    for a < b {
        a++
        fmt.Printf("a 的值为: %d
", a)
    }
}

Hasil keluaran:

i 的值为: 0
i 的值为: 1
i 的值为: 2
i 的值为: 3
i 的值为: 4
i 的值为: 5
i 的值为: 6
i 的值为: 7
i 的值为: 8
i 的值为: 9
a 的值为: 1
a 的值为: 2
a 的值为: 3
a 的值为: 4
a 的值为: 5
a 的值为: 6
a 的值为: 7
a 的值为: 8
a 的值为: 9
a 的值为: 10
a 的值为: 11
a 的值为: 12
a 的值为: 13
a 的值为: 14
a 的值为: 15
  1. penyataan julat

pernyataan julat ialah digunakan untuk Elemen traversal tatasusunan, kepingan, saluran atau peta, sintaksnya adalah seperti berikut:

for key, value := range oldMap {
    newMap[key] = value
}

di mana kunci dan nilai masing-masing mewakili kunci dan nilai elemen semasa.

Berikut ialah contoh pernyataan julat:

package main

import "fmt"

func main() {
    nums := []int{2, 3, 4}
    sum := 0
    for _, num := range nums {
        sum += num
    }
    fmt.Println("sum:", sum)

    for i, num := range nums {
        if num == 3 {
            fmt.Println("index:", i)
        }
    }

    kvs := map[string]string{"a": "apple", "b": "banana"}
    for k, v := range kvs {
        fmt.Printf("%s -> %s
", k, v)
    }
}

Hasil keluaran:

sum: 9
index: 1
a -> apple
b -> banana

Pernyataan lompat

Pernyataan lompat dalam Golang termasuk putus dan teruskan dan goto.

  1. pernyataan break

pernyataan break digunakan untuk mengganggu badan gelung Sintaks adalah seperti berikut:

for i := 0; i < 10; i++ {
    if i == 5 {
        break
    }
    fmt.Printf("%d ", i)
}
fmt.Println()

Hasil output:

0 1 2 3 4
.
  1. penyataan sambung

penyataan sambung digunakan untuk mengganggu lelaran badan gelung semasa Sintaksnya adalah seperti berikut:

for i := 0; i < 10; i++ {
    if i == 5 {
        continue
    }
    fmt.Printf("%d ", i)
}
fmt.Println()

Hasil keluaran:

.
0 1 2 3 4 6 7 8 9
  1. pernyataan goto

Pernyataan goto digunakan untuk melompat tanpa syarat ke label (label) kod tertentu untuk pelaksanaan Sintaksnya adalah seperti berikut:

goto label;
...
label: statement

di mana label ialah pengecam dan pernyataan ialah pernyataan pelaksanaan.

Berikut ialah contoh pernyataan goto:

package main

import "fmt"

func main() {
    i := 0
Again:
    fmt.Printf("循环执行次数:%d
", i)
    i++
    if i < 10 {
        goto Again
    }
}

Hasil output:

循环执行次数:0
循环执行次数:1
循环执行次数:2
循环执行次数:3
循环执行次数:4
循环执行次数:5
循环执行次数:6
循环执行次数:7
循环执行次数:8
循环执行次数:9

Ringkasan

Struktur kawalan aliran di Golang termasuk pernyataan bersyarat dan gelung pernyataan dan pernyataan lompat. Pernyataan bersyarat termasuk jika, tukar dan pilih pernyataan, yang digunakan untuk membuat pertimbangan tunggal atau berbilang syarat. Penyataan gelung termasuk penyataan untuk dan julat, yang digunakan untuk menggelungkan sekeping kod atau melintasi elemen. Pernyataan lompat termasuk penyataan putus, teruskan dan goto, yang digunakan untuk mengganggu gelung semasa atau melompat tanpa syarat ke label untuk dilaksanakan. Dalam pengaturcaraan sebenar, adalah perlu untuk memilih struktur kawalan proses yang sesuai secara fleksibel mengikut keperluan untuk melaksanakan logik kod.

Atas ialah kandungan terperinci kawalan proses golang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel sebelumnya:Adakah golang mudah dipelajari?Artikel seterusnya:Adakah golang mudah dipelajari?