cari

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
Antara muka dan polimorfisme di GO: Mencapai kebolehgunaan semula kodAntara muka dan polimorfisme di GO: Mencapai kebolehgunaan semula kodApr 29, 2025 am 12:31 AM

Interfacesandpolymorphismingoenhancecodereusabilityandmaintainability.1) DefineInterfacesatTheRightAbstractionLevel.2) UseInterfacesforddendencyInjection.3) ProfileCodeTanageperperformanceImpacts.

Apakah peranan fungsi 'init' dalam GO?Apakah peranan fungsi 'init' dalam GO?Apr 29, 2025 am 12:28 AM

TheinitfunctioningorunsautomaticallybeforethemainfunctiontoinitialializePackagesandsetuptheenvironment.it'susforforsettingupglobalvariables, sumber, danperformingone-timesetuptasksacrossanypackage

Komposisi antara muka di GO: Membina abstraksi kompleksKomposisi antara muka di GO: Membina abstraksi kompleksApr 29, 2025 am 12:24 AM

Kombinasi antara muka membina abstraksi kompleks dalam pengaturcaraan GO dengan memecahkan fungsi ke dalam antara muka kecil yang terfokus. 1) Tentukan pembaca, penulis dan antara muka yang lebih dekat. 2) Buat jenis kompleks seperti fail dan rangkaian dengan menggabungkan antara muka ini. 3) Gunakan fungsi ProcessData untuk menunjukkan cara mengendalikan antara muka gabungan ini. Pendekatan ini meningkatkan fleksibiliti kod, kesesuaian, dan kebolehgunaan semula, tetapi penjagaan harus diambil untuk mengelakkan pemecahan yang berlebihan dan kerumitan gabungan.

Potensi perangkap dan pertimbangan semasa menggunakan fungsi init di GOPotensi perangkap dan pertimbangan semasa menggunakan fungsi init di GOApr 29, 2025 am 12:02 AM

InitfunctionsingoareautomaticallycalledbeforethemainfunctionAntareusforsetupbutcomewithchallenges.1) ExecutionOrder: MultipleInitFunctionsRunindefinitionorder, whycancauseSifeDeydependoneachother.2)

Bagaimana anda melangkah melalui peta dalam perjalanan?Bagaimana anda melangkah melalui peta dalam perjalanan?Apr 28, 2025 pm 05:15 PM

Artikel membincangkan melewati peta di GO, memberi tumpuan kepada amalan selamat, memodifikasi penyertaan, dan pertimbangan prestasi untuk peta besar. Masalah: Memastikan lelaran peta yang selamat dan cekap di GO, terutamanya dalam persekitaran serentak dan dengan L

Bagaimana anda membuat peta di Go?Bagaimana anda membuat peta di Go?Apr 28, 2025 pm 05:14 PM

Artikel ini membincangkan membuat dan memanipulasi peta di GO, termasuk kaedah permulaan dan menambah/mengemas kini elemen.

Apakah perbezaan antara array dan kepingan di Go?Apakah perbezaan antara array dan kepingan di Go?Apr 28, 2025 pm 05:13 PM

Artikel ini membincangkan perbezaan antara tatasusunan dan kepingan dalam GO, memberi tumpuan kepada saiz, peruntukan memori, lulus fungsi, dan senario penggunaan. Array adalah saiz tetap, diperuntukkan stack, manakala kepingan adalah dinamik, sering ditumpukan, dan lebih fleksibel.

Bagaimana anda membuat kepingan dalam perjalanan?Bagaimana anda membuat kepingan dalam perjalanan?Apr 28, 2025 pm 05:12 PM

Artikel ini membincangkan membuat dan memulakan irisan di GO, termasuk menggunakan literals, fungsi membuat, dan mengiris tatasusunan atau kepingan yang ada. Ia juga meliputi sintaks kepingan dan menentukan panjang dan kapasiti kepingan.

See all articles

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Dreamweaver Mac版

Dreamweaver Mac版

Alat pembangunan web visual

mPDF

mPDF

mPDF ialah perpustakaan PHP yang boleh menjana fail PDF daripada HTML yang dikodkan UTF-8. Pengarang asal, Ian Back, menulis mPDF untuk mengeluarkan fail PDF "dengan cepat" dari tapak webnya dan mengendalikan bahasa yang berbeza. Ia lebih perlahan dan menghasilkan fail yang lebih besar apabila menggunakan fon Unicode daripada skrip asal seperti HTML2FPDF, tetapi menyokong gaya CSS dsb. dan mempunyai banyak peningkatan. Menyokong hampir semua bahasa, termasuk RTL (Arab dan Ibrani) dan CJK (Cina, Jepun dan Korea). Menyokong elemen peringkat blok bersarang (seperti P, DIV),

SublimeText3 Linux versi baharu

SublimeText3 Linux versi baharu

SublimeText3 Linux versi terkini

Muat turun versi mac editor Atom

Muat turun versi mac editor Atom

Editor sumber terbuka yang paling popular

PhpStorm versi Mac

PhpStorm versi Mac

Alat pembangunan bersepadu PHP profesional terkini (2018.2.1).