go流程控制代码详解

if

•Go里面if条件判断语句中不需要括号,条件判断语句里面允许声明一个变量,任何在这里声明的变量都可以在所有的条件分支中使用。

if x := 11; x > 10 {
 fmt.Println("x is greater than 10")
} else {
 fmt.Println("x is less than 10")
}

goto

•用goto跳转到必须在当前函数内定义的标签,标签名是大小写敏感的。

func myFunc() {
 i := 0
 Here:  //这行的第一个词,以冒号结束作为标签
 println(i)
 i++
 goto Here  //跳转到Here去
}

for

•for是go中的唯一的循环结构,在go里面有以下几种使用形式

//经典的初始化/条件/后续形式的for循环
for expression1; expression2; expression3 {}

//带单个循环条件,即忽略expression1和expression3:
sum := 1
for ; sum < 1000; {
 sum += sum
}
//其中;也可以省略,那么就变成如下的代码了,这就是while的功能。
for sum < 1000 {}

//不带条件的for循环将一直执行,直到在循环体内使用了break或者return来跳出循环
for {
 fmt.Println("loop")
 break
}

break和continue

•当嵌套过深的时候,break可以配合标签使用,即跳转至标签所指定的位置,break和continue还可以跟着标号,用来跳到多重循环中的外层循环

for配合range可以用于读取slice,map和数组的数据

•range 在数组和 slice 中都同样提供每个项的索引和值。我们不需要索引的时候使用空值定义符_ 来忽略它,因为对于“声明而未被调用”的变量, 编译器会报错。有时候我们需要这个索引。

•range在map中迭代键值对

switch

//经典的初始化/条件/后续形式的for循环
for expression1; expression2; expression3 {}

//带单个循环条件,即忽略expression1和expression3:
sum := 1
for ; sum < 1000; {
 sum += sum
}

//其中;也可以省略,那么就变成如下的代码了,这就是while的功能。
for sum < 1000 {}

//不带条件的for循环将一直执行,直到在循环体内使用了break或者return来跳出循环
for {
 fmt.Println("loop")
 break
}

总结

以上所述是小编给大家介绍的go流程控制代码详解,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!

(0)

相关推荐

  • C++流程控制中用于跳转的return和goto语句学习教程

    return 语句 终止函数的执行并返回对调用函数的控制(或对操作系统的控制,如果您从 main 函数转移控制).紧接在调用之后在调用函数中恢复执行. 语法 return [expression]; 备注 expression 子句(如果存在)将转换为函数声明中指定的类型,就像正在执行初始化一样.从该类型的表达式到 return 类型的函数的转换会创建临时对象. expression 子句的值将返回调用函数.如果省略该表达式,则函数的返回值是不确定的.构造函数和析构函数以及类型为 void的函数

  • Go语言中的流程控制结构和函数详解

    这小节我们要介绍Go里面的流程控制以及函数操作. 流程控制 流程控制在编程语言中是最伟大的发明了,因为有了它,你可以通过很简单的流程描述来表达很复杂的逻辑.Go中流程控制分三大类:条件判断,循环控制和无条件跳转. if if也许是各种编程语言中最常见的了,它的语法概括起来就是:如果满足条件就做某事,否则做另一件事. Go里面if条件判断语句中不需要括号,如下代码所示: 复制代码 代码如下: if x > 10 {     fmt.Println("x is greater than 10&

  • Go语言流程控制之goto语句与无限循环

    goto语句 在Go编程语言中的goto语句提供无条件跳转从跳转到标记声明的功能. 注意:使用goto语句是高度劝阻的在任何编程语言,因为它使得难以跟踪程序的控制流程,使程序难以理解,难以修改.使用一个goto任何程序可以改写,以便它不需要goto. 语法 转到goto语句的语法如下: 复制代码 代码如下: goto label; .. . label: statement; 在这里,标签(label)可以是除去关键字任何纯文本,它可以在任何地方设置在Go程序的上方或下方,以使用goto语句.

  • go流程控制代码详解

    if •Go里面if条件判断语句中不需要括号,条件判断语句里面允许声明一个变量,任何在这里声明的变量都可以在所有的条件分支中使用. if x := 11; x > 10 { fmt.Println("x is greater than 10") } else { fmt.Println("x is less than 10") } goto •用goto跳转到必须在当前函数内定义的标签,标签名是大小写敏感的. func myFunc() { i := 0 He

  • Java编程访问权限的控制代码详解

    本文研究的主要是Java编程访问权限的控制的相关内容,具体介绍如下. 之前没去注意的修饰符,一般变量前面没添加,一个是不知道有什么用,一个是懒,后面遇到项目的时候就会发现私有和公有区别还是很大的. (1)首先是包名 使用一个类的时候,例如集合类,就需要引入这个包,然后再使用该包下面的类.如: package com.myown.iaiti; public class Print { static void print(String s){ System.out.println(s); } } 自

  • 原生js中运算符及流程控制示例详解

    运算符 算数:+ 加.- 减.* 乘./ 除.% 求模 赋值:=.+=.-=.*=./=.%= 关系:>.<. >=. <=. ==. ===. !=. !== 逻辑:||或.&&与.!否 实例1.求模 window.onload = function(){ alert(0%2) //0 alert(1%2) //1 alert(2%2) //0 } 实例2.隔行变色 <body> <ol> <li>取模:就是求余数</li

  • Java控制流程示例代码详解

    目录 用户交互Scanner.Scanner进阶使用 用户交互Scanner Scanner进阶使用 顺序结构 选择结构* if选择结构 Switch选择结构 循环结构* while循环 do..while循环 for循环 增强型for循环 break&continue* 练习 用户交互Scanner.Scanner进阶使用 用户交互Scanner ​ 之前我们学习的基本语法中我们并没有实现程序和人的交互,但是Java给我们提供了这样一个工具类,我们可以获取用户的输入.java.util.Sca

  • Java编程复用类代码详解

    本文研究的主要是Java编程中的复用类,那么到底复用类是什么东西,又有什么用法,下面具体介绍. 看了老罗罗升阳的专访,情不自禁地佩服,很年轻,我之前以为和罗永浩一个级别的年龄,也是见过的不是初高中编程的一位大牛之一,专访之后,发现老罗也是一步一个脚印的人.别说什么难做,做不了,你根本就没去尝试,也没有去坚持. If you can't fly then run,if you can't run then walk, if you can't walk then crawl,but whateve

  • Spring实现处理跨域请求代码详解

    一次正常的请求 最近别人需要调用我们系统的某一个功能,对方希望提供一个api让其能够更新数据.由于该同学是客户端开发,于是有了类似以下代码. @RequestMapping(method = RequestMethod.POST, value = "/update.json", produces = MediaType.APPLICATION_JSON_VALUE) public @ResponseBody Contacter update(@RequestBody Contacter

  • Android原生音量控制实例详解

    本文主要涉及AudioService.还是基于5.1.1版本的代码. AudioService.java文件位于/framework/base/media/java/android/media/下. 音量控制是AudioService最重要的功能之一.先总结一下: AudioService音量管理的核心是VolumeStreamState.它保存了一个流类型所有的音量信息. VolumeStreamState保存了运行时的音量信息,而音量的生效则是在底层AudioFlinger完成的.所以进行音

  • SpringMVC的执行流程及组件详解

    这篇文章主要介绍了SpringMVC的执行流程及组件详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 一.核心模块 数据库访问技术与集成:JDBC.XML等 Web与远程调用技术:SpringMVC.WebServlet.WebSocket等 面向切面编程:AOP 基础设施:Tomcat Spring核心容器:Beans.Core.Context.Expression.ContestSupport 测试:Test 二.执行流程 1.用户通过页

  • jQuery实现区域打印功能代码详解

    使用CSS控制打印样式,需要设置样式media="print",并且将页面中不需要打印的元素的样式display属性设置为none.如DEMO中,我将页头页脚及其他不需要打印的元素的样式设置如下: <style type="text/css" media="print"> #header,.top_title,#jqprint,#footer,#cssprint h3{display:none} </style> 用jQu

  • CI框架(ajax分页,全选,反选,不选,批量删除)完整代码详解

    CodeIgniter 是一个小巧但功能强大的 PHP 框架,作为一个简单而"优雅"的工具包,它可以为开发者们建立功能完善的 Web 应用程序.是比较主流的一个PHP框架. 下面给大家介绍CI框架(ajax分页,全选,反选,不选,批量删除)完整代码,具体代码如下所示: //ajax分页+搜索(视图层) function ajax_page(page){ var sou = $('#sou').val(); $.ajax({ type: "POST", dataTyp

随机推荐