暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

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

进击的代码 2021-05-31
224

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 这样的判断

文章转载自进击的代码,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论