4.4 Go goto continue break

Go语言的goto语句可以无条件的跳转到指定的代码行执行。

goto语句一般与条件语句结合,实现条件转义,跳出循环体等。

Go程序不推荐使用goto,以免造成程序混乱,难以阅读。

实例:

package main

import "fmt"

func main() {
var num int = 100 fmt.Println("num值100")
if num > 90 {
goto label
//此处代码已经不走,直接goto了
fmt.Println("呵呵")
}
fmt.Println("我是占位符")
fmt.Println("我是占位符")
fmt.Println("我是占位符")
fmt.Println("我是占位符")
fmt.Println("我是占位符")
//触发了goto,进入本次标签
label:
fmt.Println("由于触发了goto,进入到我这里了") fmt.Println("我也是占位符")
fmt.Println("我也是占位符")
fmt.Println("我也是占位符")
}

1.1. break

用于中断当前循环跳出switch中的case语句

package main

import "fmt"

func main() {
var num int = 10 for num < 50 {
fmt.Printf("a的值是:%v\n", num)
num++
if num > 30 {
break //跳出for循环
}
}
}

break label

当处于多层嵌套for循环,直接跳出所有循环嵌套,可以用break label特性

package main

import (
"fmt"
) func main() {
fmt.Println("主程序开始执行")
Exit:
for i := 0; i < 9; i++ {
for j := 0; j < 9; j++ {
if i+j > 15 {
fmt.Println("程序结束")
break Exit
}
}
}
fmt.Println("已跳出循环体")
}

1.2. continue语句

continue语句跳出当前循环剩余代码,继续进行下一次循环。

package main

import "fmt"

func main() {
/* 定义局部变量 */
var a int = 10 /* for 循环 */
for a < 20 {
if a == 15 {
/* 当a等于15时,跳出循环,让a++,等于16,跳过本次循环 */
a++
continue
}
fmt.Printf("a 的值为 : %d\n", a)
a++
}
}

1.3. return语句

return用在方法或函数中,表示终止所在的方法或函数(method与function)。

return在main函数中,表示终止main函数,终止程序。

package main

import "fmt"

func main() {
for i := 0; i <= 10; i++ {
if i == 5 {
return //直接退出main函数了
}
fmt.Printf("本次循环次数:%d\n", i)
}
//永远走不带这里了,第五次for循环时候,直接return了
fmt.Println("循环结束,走到了我")
}

4.4 Go goto continue break的更多相关文章

  1. Java goto,continue,break,标签

    goto:在Java中goto仍是保留字,但并未在语言中使用它:Java没有goto. 保留字的定义:       保留字(reserved word),指在高级语言中已经定义过的字,使用者不能再将这 ...

  2. java continue break 关键字 详解 区别 用法 标记 标签 使用 示例 联系

    本文关键词: java continue break 关键字 详解 区别  用法 标记  标签 使用 示例 联系   跳出循环 带标签的continue和break 嵌套循环  深入continue ...

  3. js补充小知识点(continue,break,ruturn)

    1.continue,break,ruturn eg:1-100的和 $(function () { $("#hello").click(function () { var iNu ...

  4. dead loop、continue & break、while...else语句

    Dead loop 死循环,一经触发就会永远运行下去. continue & break 如果在循环过程中,因为某些原因,你不想继续循环了,就要用到break 或 continue语句. br ...

  5. day10 while else continue break

    a. while else b. continue   break                   continue ,终止当前循环,开始下一次循环                   break ...

  6. go (break goto continue)

    package main import ( "fmt" ) func main() { LABEL1: for { ; i < ; i++ { { break LABEL1 ...

  7. Java中goto和break、continue实现区别

    goto 关键字很早就在程序设计语言中出现.事实上,goto 是汇编语言的程序控制结构的始祖:“若条件 A,则跳到这里:否则跳到那里”.若阅读由几乎所有编译器生成的汇编代码,就会发现程序控制里包含了许 ...

  8. continue break 区别

    在循环中有两种循环方式 continue , break continue 只是跳出本次循环, 不在继续往下走, 还是开始下一次循环 break  将会跳出整个循环, 此循环将会被终止 count = ...

  9. js 之 continue break return 用法及注意事项

    1,continue continue有两种用法: 1,continue; 这种用法必须包含在循环里,否则报错,例子: for(var i=0;i<10;i++){ if(i%2===0){ c ...

随机推荐

  1. ansible的基础概念与部署(一)

  2. 不论是 Basic Auth 还是 Digest Auth,都会有 Authorization 字段

    GET /dir/index.html HTTP/1.0 Host: localhost Authorization: Digest username="Mufasa", real ...

  3. 解决 docker.io 上拉取 images Get https://registry-1.docker.io/v2/: net/http: TLS handshake timeout

    处理方式 使用如下命令获取 registry-1.docker.io 可用的 ip dig @114.114.114.114 registry-1.docker.io 看到如下输出结果 ; <& ...

  4. Libra教程之:move语言的特点和例子

    文章目录 move语言的特点 资源优先 灵活性 安全性 可验证性 Move语句初探 点对点支付交易脚本 Currency Module move语言的特点 Libra的目标是打造一个全球话的金融和货币 ...

  5. SaltStack的数据系统

    一.SaltStack数据系统的分类 1.Grains(收集的是静态数据) 官方使用文档:https://www.unixhot.com/docs/saltstack/topics/targeting ...

  6. 也许你对 Fetch 了解得不是那么多(下)

    上文链接:也许你对 Fetch 了解得不是那么多(上) 编者按:除创宇前端与作者博客外,本文还在语雀发布. 编者还要按:作者也在掘金哦,欢迎关注:@GoDotDotDot Fetch 与 XHR 比较 ...

  7. ubuntu 14.04安装pycharm 社区版

    https://blog.csdn.net/u013733432/article/details/54425831 转载于:https://www.cnblogs.com/liu-shiliu/p/1 ...

  8. Jmeter 结构体系及运行顺序

    一.Jmeter 运行原理: Jmeter 时以线程的方式来运行的(由于Jmeter 是 java 开发的所以是运行在 JVM 虚拟机上的,java 也是支持多线程的) 二.Jmeter 结构体系 1 ...

  9. muduo网络库源码学习————线程本地单例类封装

    muduo库中线程本地单例类封装代码是ThreadLocalSingleton.h 如下所示: //线程本地单例类封装 // Use of this source code is governed b ...

  10. Java面试题:String、StringBuilder、StringBuffer区别

    String:不可变字符序列. StringBuilder:可变字符序列.效率高.线程不安全,适合单线程. StringBuffer:可变字符序列.效率低.线程安全,适合多线程. 效率从高到低:Str ...