Apakah penyataan kawalan aliran golang?
Pernyataan kawalan aliran: 1. pernyataan if, yang terdiri daripada ungkapan Boolean diikuti oleh satu atau lebih pernyataan; 3. pernyataan suis, digunakan untuk melakukan tindakan yang berbeza berdasarkan keadaan yang berbeza; kenyataan putus, teruskan, goto.
Persekitaran pengendalian tutorial ini: sistem Windows 7, GO versi 1.18, komputer Dell G3.
Mari kita lihat kandungan asas pernyataan kawalan aliran golang.
1. Pernyataan cawangan bersyarat
adalah serupa dengan bahasa C Pernyataan bersyarat yang berkaitan adalah seperti yang ditunjukkan dalam jadual berikut:
语句 | 描述 |
---|---|
if 语句 | if 语句 由一个布尔表达式后紧跟一个或多个语句组成。 |
if…else 语句 | if 语句 后可以使用可选的 else 语句, else 语句中的表达式在布尔表达式为 false 时执行。 |
switch 语句 | switch 语句用于基于不同条件执行不同动作。 |
select 语句 | select 语句类似于 switch 语句,但是select会随机执行一个可运行的case。如果没有case可运行,它将阻塞,直到有case可运行。 |
- pernyataan if
Sintaks adalah seperti berikut:
if 布尔表达式 { /* 在布尔表达式为 true 时执行 */ }
- pernyataan if-else
if 布尔表达式 { /* 在布尔表达式为 true 时执行 */ } else { /* 在布尔表达式为 false 时执行 */ }
- penyataan suis
Pembolehubah<span class="hljs-attribute">v</span>
boleh daripada sebarang jenisval1
danval2
boleh menjadi sebarang nilai jenis yang sama Jenis tidak terhad kepada pemalar atau integer, atau yang terakhir hasilnya ialah ungkapan daripada jenis yang sama.
switch v { case val1: ... case val2: ... default: ... }
- penyataan pilih
pilih ialah struktur kawalan dalam Go, serupa dengan pernyataan suis yang digunakan untuk komunikasi. Setiap kes mestilah operasi komunikasi, sama ada menghantar atau menerima. Ia akan melaksanakan kes boleh jalan secara rawak. Jika tiada kes untuk dijalankan, ia akan menyekat sehingga ada kes untuk dijalankan. Klausa lalai hendaklah sentiasa boleh dijalankan.
select { case communication clause : statement(s); case communication clause : statement(s); /* 你可以定义任意数量的 case */ default : /* 可选 */ statement(s); }
Nota:
- Setiap kes mestilah komunikasi
- Semua ungkapan saluran akan dinilai, semua ungkapan dihantar akan dinilai
- Jika mana-mana satu komunikasi boleh dilaksanakan, ia akan dilaksanakan, dan yang lain akan diabaikan
- Jika berbilang kes boleh dilaksanakan, pilih akan dipilih secara rawak untuk melaksanakan.
- Jika tiada kes boleh dijalankan: Jika terdapat klausa lalai, klausa lalai akan dilaksanakan, dan pilih akan disekat sehingga komunikasi tertentu boleh dijalankan, sekali gus mengelakkan masalah kebuluran.
2 Penyataan gelung
2.1 Penyataan pemprosesan gelung
Tidak seperti kebanyakan bahasa, pernyataan gelung dalam bahasa Go hanya menyokong kata kunci for dan tidak menyokong struktur while dan do-while Penggunaan asas kata kunci untuk sangat hampir dengan yang dalam bahasa C dan C++ .
For digunakan untuk melaksanakan gelung dalam go Terdapat tiga bentuk:
| Sintaks | ||||||||
---|---|---|---|---|---|---|---|---|---|
Sama seperti dalam bahasa c | untuk keadaan init; tr> | ||||||||
Sama seperti semasa dalam bahasa c | untuk keadaan{} | ||||||||
Sama seperti <span class="hljs-function"><span class="hljs-title">untuk</span><span class="hljs-params">(;;)</span>< / span> Sama | untuk{} |
Selain itu, gelung for juga boleh digunakan secara langsung julat melakukan gelung berulang pada kepingan, peta, tatasusunan dan rentetan, dsb. Formatnya adalah seperti berikut:
for key, value := range oldmap { newmap[key] = value }
2.2 Penyataan kawalan gelung
控制语句 | 详解 |
---|---|
break | 中断跳出循环或者switch语句 |
continue | 跳过当前循环的剩余语句,然后继续下一轮循环 |
goto语句 | 将控制转移到被标记的语句 |
1、break
break主要用于循环语句跳出循环,和c语言中的使用方式是相同的。且在多重循环的时候还可以使用label标出想要break的循环。
实例代码如下:
a := 0 for a<5 { fmt.Printf("%d\n", a) a++ if a==2 { break; } } /* output 0 1 2 */
2、continue
Go 语言的 continue 语句 有点像 break 语句。但是 continue 不是跳出循环,而是跳过当前循环执行下一次循环语句。在多重循环中,可以用标号 label 标出想 continue 的循环。
实例代码如下:
// 不使用标记 fmt.Println("---- continue ---- ") for i := 1; i <= 3; i++ { fmt.Printf("i: %d\n", i) for i2 := 11; i2 <= 13; i2++ { fmt.Printf("i2: %d\n", i2) continue } } /* output i: 1 i2: 11 i2: 12 i2: 13 i: 2 i2: 11 i2: 12 i2: 13 i: 3 i2: 11 i2: 12 i2: 13 */ // 使用标记 fmt.Println("---- continue label ----") re: for i := 1; i <= 3; i++ { fmt.Printf("i: %d", i) for i2 := 11; i2 <= 13; i2++ { fmt.Printf("i2: %d\n", i2) continue re } } /* output i: 1 i2: 11 i: 2 i2: 11 i: 3 i2: 11 */
3、goto
goto语句主要是无条件转移到过程中指定的行。goto语句通常和条件语句配合使用,可用来实现条件转移、构成循环以及跳出循环体等功能。但是并不主张使用goto语句,以免造成程序流程混乱。
示例代码如下:
var a int = 0 LOOP: for a<5 { if a == 2 { a = a+1 goto LOOP } fmt.Printf("%d\n", a) a++ } /* output: 0 1 2 3 4 */
以上代码中的LOOP就是一个标签,当运行到goto语句的时候,此时执行流就会跳转到LOOP标志的哪一行上。
Atas ialah kandungan terperinci Apakah penyataan kawalan aliran golang?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Perpustakaan yang digunakan untuk operasi nombor terapung dalam bahasa Go memperkenalkan cara memastikan ketepatannya ...

Masalah Threading Giliran di GO Crawler Colly meneroka masalah menggunakan Perpustakaan Colly Crawler dalam bahasa Go, pemaju sering menghadapi masalah dengan benang dan permintaan beratur. � ...

Perbezaan antara percetakan rentetan dalam bahasa Go: perbezaan kesan menggunakan fungsi println dan rentetan () sedang ...

Masalah menggunakan redisstream untuk melaksanakan beratur mesej dalam bahasa Go menggunakan bahasa Go dan redis ...

Apa yang perlu saya lakukan jika label struktur tersuai di Goland tidak dipaparkan? Apabila menggunakan Goland untuk Pembangunan Bahasa GO, banyak pemaju akan menghadapi tag struktur tersuai ...

Perpustakaan mana yang dibangunkan oleh syarikat besar atau projek sumber terbuka yang terkenal? Semasa pengaturcaraan di GO, pemaju sering menghadapi beberapa keperluan biasa, ...

Dua cara untuk menentukan struktur dalam bahasa Go: perbezaan antara VAR dan jenis kata kunci. Apabila menentukan struktur, pergi bahasa sering melihat dua cara menulis yang berbeza: pertama ...

Cecair mengendalikan isu keselamatan bersamaan dalam penulisan log pelbagai proses. Proses berganda menulis fail log yang sama pada masa yang sama. Bagaimana untuk memastikan kesesuaian selamat dan cekap? Ini ...
