设为首页 加入收藏

TOP

Go语言流程控制(二)
2018-10-26 14:09:15 】 浏览:235
Tags:语言 流程 控制
可以对slice、map、数组、字符串等进行迭代循环。格式如下:

for key, value := range oldMap {
    newMap[key] = value
}

在Go语言中,仅仅可以用一个for不加任何条件的执行循环,如果for循环内部没有break语句,它会一直循环下去

Go语言的关键字也可以实现其它编程语言里while的功能,比如定义一个变量a,当a>=20时就跳出循环,否则一直循环下去。

细节说明:

如果我们在遍历一个字符串时,字符串中含有中文,那么传统的遍历字符串方式for(i :=0; i<len(str);i++)是错误的,会出现乱码。原因是传统的对字符串的遍历是按照字节来遍历,而一个汉字在utf8编码是对应3个字节。

如何解决?

1.需要将str转成[]rune切片

2.对应for-range遍历方式而言,是按照字符方式遍历的。因此如果字符串中有中文,也是可以的。

break

break语句用于终止某个语句块的执行,用于中断当前for循环或跳出switch语句。break是跳出整个循环。

break语句出现在多层嵌套的语句块中时,可以通过标签指明要终止的是哪一层语句块。

package main

import "fmt"

func main() {

    //label1:
    for i := 0; i < 4; i++ {
        label2:
        for j := 0; j < 5; j++ {
            if j == 2 {
                //break  //break默认会跳出最近的循环
                //break label1;
                break label2;
            }
            fmt.Println("j = ", j)
        }
    }
}

continue

continue语句用于结束本次循环,继续执行下一次循环。

continue语句出现在多层嵌套的循环语句体中时,可以通过标签知名要跳过的是哪一层循环,这个和前面的break + 标签的使用规则一样。


"goto">goto

  • Go语言的goto语句可以无条件地转移到程序中指定的行。
  • goto语句通常与条件语句配合使用。可以用来实现条件转移,跳出循环体等功能。
  • 在Go程序设计中一般不主张使用goto语句,以免造成程序流程的混乱,使理解和调试程序都产生困难。

语法:

goto label

label: statement

示例:

package main

import "fmt"

func main() {

    fmt.Println(1);
    goto label1
    fmt.Println(2);
    fmt.Println(3);
    fmt.Println(4);

    label1:
    fmt.Println(5);
}
//输出结果
1
5


编程开发网
首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Go语言函数 下一篇Go语言运算符

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

array(4) { ["type"]=> int(8) ["message"]=> string(24) "Undefined variable: jobs" ["file"]=> string(32) "/mnt/wp/cppentry/do/bencandy.php" ["line"]=> int(217) }