Rumah > Artikel > pembangunan bahagian belakang > 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.
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可运行。 |
if 布尔表达式 { /* 在布尔表达式为 true 时执行 */ }
if 布尔表达式 { /* 在布尔表达式为 true 时执行 */ } else { /* 在布尔表达式为 false 时执行 */ }
<span class="hljs-attribute">v</span>
boleh daripada sebarang jenis val1
dan val2
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: ... }
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.
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 }
控制语句 | 详解 |
---|---|
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!