【if】
if 是用于测试某个条件的语句,如果该条件(逻辑型或布尔型)成立,则会执行大括号内的代码,第一个大括号必须和if 或者else同行,否则非法
 // 方式1
if condition {
//do something
}
// 方式2
if condition {
// do something
}else{
// do something
}
// 方式3
if condition1 {
// do something
} else if condition2 {
// do something else
} else {
// default
}
// 方式4
if initialization; condition{
// do something
}
if _,ok := f1();ok{
f2()
}
else-if 的嵌套不受次数限制,若有多个,建议将可能性大的放在前面
在方式4中的初始化语句中,建议声明变量,避免变量作用域带来的问题
 
【switch】
 // 方式1  变量值的匹配
switch var1 {
case val1:
...
case val2:
...
default:
...
}
switch i{
case 10:
f1()
case 20:
f2()
defaul:
f3()
} // 方式2 变量判断类似if
switch {
case condition1:
...
case condition2:
...
default:
...
}
switch{
case i<10:
f1()
case i>10:
f2()
defalt:
f3()
}
// 方式3 包含变量声明初始化
switch initialization {
case val1:
...
case val2:
...
default:
...
}
switch result := calculate();{
case result > 0:
f1()
case result < 0:
f2()
default:
f3()
}
备注:
    Go中的switch不需要break来跳出,自动会跳出控制,如果想不跳出控制的话,就在case后面添加fallthrough,这样就会自动执行这个case后面的case【case i>0:fallthrough】
 
 
【for】
 //for 初始化语句;条件语句;修饰语句{}
for i := 0;i < 10; i++{
fmt.Println(i)
}
// for 条件语句{}
i := 0
for i<100{
fmt.Println(i)
i++
}
// for ix,val := range coll{}
for key,val := range str{
fmt.Printf("index: %d value: %s",key,val)
}
 
 
【标签与goto】(在程序设计中不建议使用,这个在C中被诟病很久,但是Go语言的设计者为什么...)
标签的名称大小写敏感,为了提高可读性,建议使用大写字母
 page main

 func main(){
i := 0
HERE:
fmt.Println(i)
i++
if i == 5{
return
}
goto HERE
}
 
标签定义了要使用,和变量是一样的,这是Go语言的原则之一,程序中不允许出现不使用的代码。
 
 学习参考处:https://github.com/Unknwon/the-way-to-go_ZH_CN/blob/master/eBook/directory.md

Go笔记-流程控制的更多相关文章

  1. JavaScript学习笔记——流程控制

    javascript流程控制流程:就是程序代码的执行顺序.流程控制:通过规定的语句让程序代码有条件的按照一定的方式执行. 一.顺序结构 按照书写顺序来执行,是程序中最基本的流程结构. 二.选择结构(分 ...

  2. Go语言学习笔记-流程控制(二)

    Go语言流程控制 字典类型Map 1.上节遗留:map字典类型 变量声明:var myMap map[string] PersonInfo 其中,myMap是变量名,string是键的类型,Perso ...

  3. go学习笔记-流程控制(if/else,for/range)

    流程控制(if/else,for/range) if if条件判断语句的语法概括起来就是:如果满足条件就做某事,否则做另一件事. func testIf() { num := 10 if num &l ...

  4. python学习笔记---流程控制

    二.流程控制 2.1选择结构与语句 2.1.1 最简单的if语句 注意:if语句后边必须加上冒号 满足条件后.可以执行多条语句. #最简单的if语句 print("请输入一个既能整除2,又能 ...

  5. golang笔记——流程控制

    条件语句 if ... else if ... else 语句,如: { fmt.Println(">100") } < num { fmt.Println(" ...

  6. Java学习笔记-流程控制

    在Java中,最常见的就是顺序结构,另外,还有其他的一些的结构,选择,循环等,这些程序结构的加入,使得程序代码更有选择性 判断结构 if语句 三种格式: if(条件表达式) { 执行语句; } if( ...

  7. C学习笔记-流程控制

    常用的流程图符号 起止框用于表示流程的开始或结束: 输入/输出框用平行四边形表示,在平行四边形内可以写明输入或输出的内容: 判断框用菱形表示,它的作用是对条件进行判断,根据条件是否成立来决定如何执行后 ...

  8. 初学swift笔记 流程控制(五)

    import Foundation ; i<=; i++ { println(i) } let str1="adl;fjasdfl;ouewrouqwperuadf" for ...

  9. Java学习笔记之:Java流程控制

    一.介绍 Java流程控制包括顺序控制.条件控制和循环控制. 顺序控制,就是从头到尾依次执行每条语句操作.条件控制,基于条件选择执行语句,比方说,如果条件成立,则执行操作A,或者如果条件成立,则执行操 ...

随机推荐

  1. bzoj:1687;poj 2434:[Usaco2005 Open]Navigating the City 城市交通

    Description A dip in the milk market has forced the cows to move to the city. The only employment av ...

  2. HDU--2024

    C语言合法标识符 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total S ...

  3. Linux shell编程命令-Linux基础环境命令学习笔记

    1.正则表达式 1)^开始 *前一个字符重复0次以上 + 1次以上 ? 0次或者1次 . 一个任意字符(.*连用) {m,n} m到n次 [0-9][a-z] 任意数字或字母 $结束字符 2)sed和 ...

  4. 如何在SecureCRT中给linux上传和下载文件 安装redis

    首先建立文件 /download sz和rz命令无法用.则用以下1.和2.3步骤   需要上传或者下载,需要使用rz和sz命令.如果linux上没有这两个命令工具,则需要先安装.可以使用yum安装.运 ...

  5. js代码性能优化的几个方法

    相信写代码对于大部分人都不难,但想写出高性能的代码就需要一定的技术积累啦,下面是一些优化JavaScript代码性能的常见方法. 一.注意作用域 1.避免全局查找 使用全局变量和函数肯定要比局部的开销 ...

  6. surging 微服务框架使用系列之surging介绍

    首先,感谢surging的作者fanliang11为.net开源做出的贡献 其次, surging 的git地址:https://github.com/dotnetcore/surging surgi ...

  7. PHP实现伪静态方法汇总

    PHP伪静态的使用主要是为了隐藏传递的参数名,下面给大家介绍php实现伪静态的方法,对php实现伪静态相关知识感兴趣的朋友一起学习吧 PHP伪静态的使用主要是为了隐藏传递的参数名,下面给大家介绍php ...

  8. PhoneGap安装手顺

    http://docs.phonegap.com/getting-started/1-install-phonegap/desktop/

  9. TCP是什么? 最简单的三次握手说明

    TCP是什么? TCP(Transmission Control Protocol 传输控制协议)是一种面向连接(连接导向)的.可靠的. 基于IP的传输层协议.TCP在IP报文的协议号是6.TCP是一 ...

  10. LindDotNetCore~Polly组件对微服务场景的价值

    回到目录 Polly是一个开源框架,在github上可以找到,被善友大哥收录,也是.App vNext的一员! App vNext:https://github.com/App-vNext GitHu ...