break(跳出循环)

break用于跳出整个循环,如下:

func main() {
for i:=;i<;i++{
if i>{
break
}
fmt.Println(i)
}
} // 0 1 2 3

代码里只会打印到3,当大于3时会跳出整个for循环,注意整个for循环指的是直接包含break的那层for循环,举个例子:

func main() {
for i:=;i<;i++{
for j:=;j<;j++ {
if j == {
break
}
fmt.Printf("%v-%v\n",i, j)
}
}
}

查看上述代码的结果,就会发现内层循环只能打印到4,而外层循环可以到9(即走完了整个for循环)。

除此之外,我们还可以使用标签来退出指定循环。改造上面的双层循环代码,如下:

func main() {
EX:
for i:=;i<;i++{
for j:=;j<;j++ {
if j == {
break EX
}
fmt.Printf("%v-%v\n",i, j)
}
}
}

我在最外层for循环上面加一个 EX 标签,然后 break EX,此时的结果就是当j==5时,从最外面的for循环退出来了。为了对比,可以再试下:

func main() {
for i:=;i<;i++{
EX:
for j:=;j<;j++ {
if j == {
break EX
}
fmt.Printf("%v-%v\n",i, j)
}
}
}

其实这种写法跟不加标签是一样的效果,上面也说到了,break是退出当前包含它的循环的。

continue(继续下一次循环)

continue 是继续下一次的循环,与 break 的区别就是不跳出整个循环,只跳过此次循环:

func main() {
for i:=;i<;i++{
if i=={
continue
}
fmt.Println(i)
}
} // 跳过了5,继续后面的循环
// 0 1 2 3 4 6 7 8 9

continue 也支持标签写法:

func main() {
EX:
for i:=;i<;i++{
for j:=;j<;j++ {
if j == {
continue EX
}
fmt.Printf("%v-%v\n",i, j)
}
}
}

goto(跳转到指定标签)

goto是个好东西,它可以跳转到我们指定的标签,从而执行那部分代码,例子:

func main() {
for i:=;i<;i++{
for j:=;j<;j++ {
if j == {
goto breakTag
}
fmt.Printf("%v-%v\n",i, j)
}
breakTag:
break
}
}

如上代码,当 j==5 时,使用goto跳转到breakTag标签处,而这个标签下执行了break(注意break位置),从而使得最外层的for循环中断,是不是很好用。但是一般不主张使用goto语句,可能是因为太灵活反而容易造成程序混乱。

Go语言流程控制中的break,continue和goto(七)的更多相关文章

  1. [java学习笔记]java语言基础概述之转义字符&break&continue

    1.转义字符 \t:制表符 \n:回车 \b:退格 \r:回车 \":双引号 \\:反斜线(常用于文件路径的书写中)   windows系统中回车符其实是由两个符号组成的,\r\n linu ...

  2. 退出循环break,continue,return,goto分析

    /* 在循环中间设置单个或者多个退出点,可以使用的语句有:break语句.continue语句.goto语句. return */ (1)break :break语句语句用于循环或 switch 语句 ...

  3. JAVA之旅(二)——if,switch,for,while,do while,语句嵌套,流程控制break , continue ,函数,重载的示例总结

    JAVA之旅(二)--if,switch,for,while,do while,语句嵌套,流程控制break , continue ,函数,重载的示例总结 JAVA的思想真的很重要,所以要专心的学-- ...

  4. Java流程控制,for,switch,while.break,continue,return

    Java流程控制,for,switch,while.break,continue,return

  5. Java流程控制:增强for循环,break&continue,打印99乘法表

    增强for循环:java5引入了一种主要用于数组或集合的增强for循环for(声明语句:表达式){//代码句子} 声明语句:声明新的局部变量,该变量的类型必须和数组元素的类型匹配.其作用域限定在循环语 ...

  6. 04. Go 语言流程控制

    Go 语言流程控制 流程控制是每种编程语言控制逻辑走向和执行次序的重要部分,流程控制可以说是一门语言的"经脉". Go 语言的常用流程控制有 if 和 for,而 switch 和 ...

  7. 跳转语句 break;continue; return; goto 区别用法

    C语言是按顺序执行语句的语言——一个接一个.即使它有条件语句或循环语句,程序的流程也是自上而下的.没有顺序流的随机跳转或跳转.但我们的程序是为了满足任何现实世界的需求,一个接一个地执行永远不会很直接. ...

  8. java中的break continue

    break语句 在任何循环语句的主体部分,均可用break控制循环的流程.break用于强行退出循环,不执行循环中剩余的语句.(break语句也在switch语句中使用) public class B ...

  9. Day7 break continue goto 以及打印三角形练习.

    break break在任何循环语句中的主体部分,均可以用break控制循环流程.break用于强行退出循环,不执行循环中剩余的语句. (break语句也在switch中使用) package com ...

随机推荐

  1. poj 3190 贪心+优先队列优化

    Stall Reservations Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 4274   Accepted: 153 ...

  2. 12.JSTL标签

    JSTL是一个不断完善的开源代码的JSP标签库,在JSP2.0中已将JSTL作为标准支持.使用JSTL可以取代在传统JSP程序中嵌入Java代码的做法,在一定程度上提高了代码的可维护性. JSTL有5 ...

  3. K8S中Service

    Service 的概念Kubernetes  Service  定义了这样一种抽象:一个  Pod  的逻辑分组,一种可以访问它们的策略 —— 通常称为微服务. 这一组  Pod  能够被  Serv ...

  4. docker打包flask简单程序

    简单代码: from flask import Flask app=Flask(__name__) @app.route('/') def hello(): return 'hello world' ...

  5. vim8.1安装

    win下直接就有gvim8.1.exe安装.但linux下直接从apt-get里面下载的vim都是远古版本,需要手动编译安装. 首先,下载vim源代码 git clone https://github ...

  6. JavaWeb_(Hibernate框架)使用Hibernate开发用户注册功能

    使用Hibernate开发用户注册功能: 用户在register.jsp表单成功后,页面跳转到login.html,数据库中会存放用户注册的信息 <%@ page language=" ...

  7. mysql 数据库备份 -- (定时任务)

    场景: 我们经常需要对数据库备份 方式一:mysql 数据备份方式 在linux 备份方式  通常采用 mysqldump -uroot -ppassword  --database 数据库名 > ...

  8. docker操作笔记

    1.查看docker版本:docker info /docker  version2.使用 docker run 命令来在容器内运行一个应用程序.如输出helloworld:docker run ub ...

  9. Mac平台最好用的万能开源免费播放器-IINA

    1.安装 1)官网下载地址 https://iina.io/ 2)brew 方式安装 testdeMacBook-Pro:~ test$ brew cask install iina Updating ...

  10. Mysql中两个select语句的连接

    Mysql中两个select语句连接需要用到操作符 SQL UNION 操作符 UNION 操作符用于合并两个或多个 SELECT 语句的结果集. 请注意,UNION 内部的 SELECT 语句必须拥 ...