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. [C语言] 获得 pwd 的几种函数

    _getcwd() GetCurrentDirectory GetModuleFileName main函数参数 argv[0] // crt_getcwd.c // This program pla ...

  2. linux sort 命令实用手册

    Linux 中的sort 命令是一个很实用的工具,用于对文本内容以行为单位进行ASCII 码排序,默认按照升序进行排序(当然也可以按照降序). sort 命令的格式如下: sort `参数` `文件名 ...

  3. Mysql使用规范及建议

    MySQL数据库使用规范一.建表规约1.[强制]表达是与否概念的字段,必须使用is_xxx的方式命名,数据类型是unsigned tinyint (1表示是,0表示否) 说明:任何字段如果为非负数,必 ...

  4. 写给MongoDB开发者的50条建议Tip21

    本系列文章翻译自<50 Tips and Tricks for MongoDB Developers>,暂时没有找到中文版,反正自己最近也在深入学习mongodb,所以正好拿来翻译一下.一 ...

  5. Linux下创建 code diff 和 合并 patch

    Linux 下经常需要给别人提供 patch 以及合 patch,这时需要用到 Linux 的 diff 和 patch 命令. 1. diff 命令 diff 命令常用来比较文件.目录,也可以用来制 ...

  6. 解决ASP.NET WebPage的CS1061报错

    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="pg_CompanyInfo ...

  7. 配置Ansible加速

    下载安装包 wget https://files.pythonhosted.org/packages/source/m/mitogen/mitogen-0.2.7.tar.gz tar axf mit ...

  8. SpringBoot集成Quartz实现定时任务

    1 需求 在我的前后端分离的实验室管理项目中,有一个功能是学生状态统计.我的设计是按天统计每种状态的比例.为了便于计算,在每天0点,系统需要将学生的状态重置,并插入一条数据作为一天的开始状态.另外,考 ...

  9. 集成学习基础知识总结-Bagging-Boosting

    理论 在概率近似正确((probably approximately correct)学习框架下.一个概念是强可学习的充分必要条件是这个概念是弱可学习(仅比随机猜测稍好). 要求 个体学习器要好而不同 ...

  10. Re模块的方法补充

    id_str = input("输入一个身份证号:") import re obj = re.compile(r"^([1-9]\d{16}[0-9x]|[1-9]\d{ ...