Go循环跳转语句使用标签的作用之一

进击的代码 2024-10-13 10:26:06

Go 中的 for 循环可以使用 continue, break 进行控制,同时也可以标签。

下面看一下使用标签的一个好处。

示例:Go 求 N 以内的素数。

package main import ( "fmt") func main() { printPrime(10)} func printPrime(maxNum int) {next: for outer := 2; outer < maxNum; outer++ { for inner := 2; inner < outer; inner++ { if outer%inner == 0 { continue next } } fmt.Printf("%d\n", outer) } fmt.Println("Completed")}

再看一下用C语言实现的(C 的 continue, break 不支持标签):

#include <stdio.h> void printPrime(int maxNum){ int outer, inner; int flag; for (outer = 2; outer < maxNum; outer++) { flag = 1; for (inner = 2; inner < outer; inner++) { if (outer % inner == 0) { flag = 0; break; } } if (flag == 1) { printf("%d\n", outer); } } printf("Completed\n");} int main(){ printPrime(10); return 0;}

可以看出,对于计算素数这个程序,使用循环使用跳转标签,可以省去如C语言 flag 这样的判断。

0 阅读:4

进击的代码

简介:程序员,分享生活、工作、技术、学习。