1 if

  • 条件表达式没有括号
  • 支持一个初始化表达式(可以是并行方式)
  • 左大括号必须和条件语句或else在同一行
  • 支持单行模式
  • 初始化语句中的变量为block级别,同时隐藏外部同名变量

a := 1
if a > 0 {
fmt.Println("yes") //输出该结果
}
//加初始表达式
if b := 2; a < b {
fmt.Println("a<b") //输出该结果
}
//加并行初始表达式
if b, c := 0, 2; a > b && c > a {
fmt.Println("a>b && c>a") //输出该结果
}
//同名变量外部将隐藏
if a := 2; a > 0 {
fmt.Println(a) //输出2
}
fmt.Println(a) //输出1

2 for

  • Go只有for一个循环语句关键字,但支持3种形式
  • 初始化和步进表达式可以是多个值
  • 条件语句每次循环都会被重新检查,因此不建议在条件语句中

    使用函数,尽量提前计算好条件并以变量或常量代替
  • 左大括号必须和条件语句在同一行
	i := 0
//死循环
for {
fmt.Println("进入死循环,一般用break退出")
break
}
//while循环
for i < 10 {
fmt.Println("相当于while循环")
i++ //go中++只能出现在等式的左边,且没有++i这种
}
//正常for循环,并行赋值
for i, j := 1, 2; i < 5; i++ {
fmt.Println(i, j)
}

3 switch

  • 可以使用任何类型或表达式作为条件语句
  • 不需要写break,一旦条件符合自动终止
  • 如希望继续执行下一个case,需使用fallthrough语句,使用后下一个case一定会执行不管条件是否满足
  • 支持一个初始化表达式(可以是并行方式),右侧需跟分号
  • 左大括号必须和条件语句在同一行
a := 0
//普通的switch
switch a {
case 0:
fmt.Println("0")
fallthrough
case 1: //此时这个case一定会执行
fmt.Println("1")
case 2: //不执行
fmt.Println("2")
default:
fmt.Println("default")
}
//相当于if,case中一定要是条件
switch {
case 0 != 0:
fmt.Println("0")
case 1 > 2:
fmt.Println("1")
case 2 == 2: //执行
fmt.Println("2")
fallthrough
default: //执行
fmt.Println("default")
}
//带初始化表达式的switch
switch a := 6; a {
case 6: //执行,switch中声明的变量会隐藏调外部变量
fmt.Println(a)
case 1:
fmt.Println("1")
case 2:
fmt.Println("2")
default:
fmt.Println("default")
}

4 goto,break,continue

  • 三个语法都可以配合标签使用
  • 标签名区分大小写,若不使用会造成编译错误
  • break与continue配合标签可用于多层循环的跳出
  • goto是调整执行位置,与其它2个语句配合标签的结果并不相同
	//label加continue
LABEL:
for i := 0; i < 5; i++ {
for {
fmt.Println("二层for", i) //输出5次
continue LABEL
}
}
//label加break
LABEL1:
for i := 0; i < 5; i++ {
for {
fmt.Println("二层for", i)
break LABEL1
}
}
//label加goto,如果不用count判断则是一个无限循环
count := 0
LABEL2:
if count > 2 {
goto LABEL3
}
for i := 0; i < 5; i++ {
for {
count++
fmt.Println("无限循环", count)
goto LABEL2
}
}
LABEL3:
fmt.Println("over")

GO入门——3. 控制语句的更多相关文章

  1. java SE 入门之控制语句&方法&递归算法(第五篇)

    一 控制语句(选择结构) 在学习控制语句之前,我们要先明确两件事情,什么是顺序结构(也叫做顺序执行),什么是选择结构 (分支结构或分支执行或选择执行),我们的代码执行是分为先后顺序的,就像我们之前写的 ...

  2. C++ Primer高速入门之三:几种常见的控制语句

    语句总是顺序运行的:第一条语句运行完了接着是第二条,第三条等等.这是最简单的情况,为了更好的控制语句的运行.程序设计语言提供了多种控制结构支持更为复杂的语句运行.我们就来看看C++ 提供的控制方式. ...

  3. 【转载】salesforce 零基础开发入门学习(二)变量基础知识,集合,表达式,流程控制语句

    salesforce 零基础开发入门学习(二)变量基础知识,集合,表达式,流程控制语句 salesforce如果简单的说可以大概分成两个部分:Apex,VisualForce Page. 其中Apex ...

  4. Python 入门之流程控制语句

    Python 入门之流程控制语句 1.if判断 (1) 单 if if –-如果 if 条件: 缩进 结果 (官方推荐4个空格,或者一个tab 不能空格和tab混合使用) money = 10 pri ...

  5. 数据结构和算法(Golang实现)(3)简单入门Golang-流程控制语句

    流程控制语句 计算机编程语言中,流程控制语句很重要,可以让机器知道什么时候做什么事,做几次.主要有条件和循环语句. Golang只有一种循环:for,只有一种判断:if,还有一种特殊的switch条件 ...

  6. 01-C#入门(分支控制语句)

    说实话,<C#入门经典>这本书对入门的同学来说真的太棒了,先不说内容如何,就作者先以控制台(命令行)调试程序的方法,就能够最大限度地让你关注学习的内容,而不是花哨的界面调试. 现在学习是下 ...

  7. salesforce 零基础开发入门学习(二)变量基础知识,集合,表达式,流程控制语句

    salesforce如果简单的说可以大概分成两个部分:Apex,VisualForce Page. 其中Apex语言和java很多的语法类似,今天总结的是一些简单的Apex的变量等知识. 有如下几种常 ...

  8. 【C语言入门教程】3.3 条件控制语句

    在程序的 3 种基本结构中,第二种是选择结构,选择结构是根据程序运行时获得的条件,决定程序执行情况.条件控制语句可用来实现这种结构,C 语言提供了 if 语句和 switch 语句两种条件控制语句,i ...

  9. 【C语言入门教程】3.4 循环控制语句

    循环结构又称重复结构,是程序的 种基本结构之一.它反复执行循环体内的代码,解决需要大量重复处理的问题.循环结构由循环控制语句实现,其中内建有条件控制语句,用来判读是否继续执行循环操作.C 语言提供了  ...

随机推荐

  1. Ubuntu下安装并配置TexStudio

    作者:tongqingliu 转载请注明出处:http://www.cnblogs.com/liutongqing/p/7069715.html Ubuntu下安装并配置TexStudio Ubunt ...

  2. mac终端的命令都失效的解决方法

    step1. 在terminal里面输入: export PATH="/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin&qu ...

  3. String、Stringbuffer、Stringbuilder三者之间的区别

    1.首先说运行速度,速度由快到慢排列:StringBuilder > StringBuffer > String String最慢的原因: String为字符串常量,而StringBuil ...

  4. 20155326 2017-2018-1 《信息安全系统设计基础》第2周学习及课堂总结myod

    20155326 2017-2018-1 <信息安全系统设计基础>第1次学习及课堂总结myod 虚拟机之前出了一些问题,然后我重新弄了一个新的虚拟机. 先在虚拟机里面安装了git. 安完以 ...

  5. Hdu4687 Boke and Tsukkomi

    Boke and Tsukkomi                                                                               Time ...

  6. hdu 4542 打表+含k个约数最小数

    http://acm.hdu.edu.cn/showproblem.php?pid=4542 给出一个数K和两个操作 如果操作是0,就求出一个最小的正整数X,满足X的约数个数为K. 如果操作是1,就求 ...

  7. jQuery插件初级练习4答案

    html: $("p").log().css("color","red") jQuery: $.fn.extend({ log: funct ...

  8. git命令行的操作实例教程

    Git 常用命令常用命令 创建新仓库 创建新文件夹,打开,然后执行 git init 1 以创建新的 git 仓库. 检出仓库 执行如下命令以创建一个本地仓库的克隆版本: git clone /pat ...

  9. Alpha阶段scrum meeting七天冲刺博客-天冷记得穿秋裤队

    Alpha阶段scrum meeting七天冲刺博客 day url 第一天 https://www.cnblogs.com/laomiXD/articles/9874052.html 第二天 htt ...

  10. Android-Kotlin-接口与多态的表现

    上一篇博客介绍了 Android-Kotlin-抽象类与多态的表现 :, 而这一篇博客专门介绍下 接口与多态的表现 选择包名,然后右键: 选择Class类型,会有class:  选择File类型,不会 ...