Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Apakah penyataan kawalan aliran golang?

Apakah penyataan kawalan aliran golang?

青灯夜游
青灯夜游asal
2022-12-28 17:58:284176semak imbas

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.

Apakah penyataan kawalan aliran golang?

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 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:
        ...
}
  • 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:


语法
和c语言中的for相同 for init; condition; post {}
和c语言中的while相同 for condition{}
和c语言中的<span class="hljs-function"><span class="hljs-title">for</span><span class="hljs-params">(;;)</span></span>相同 for{}
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标志的哪一行上。

【相关推荐:Go视频教程编程教学

Atas ialah kandungan terperinci Apakah penyataan kawalan aliran 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:Bilakah bahasa pergi muncul?Artikel seterusnya:Bilakah bahasa pergi muncul?