流程控制

  • 条件语句

例:

var b bool = true
if b{
fmt.Print("b是True")
}else{
fmt.Print("b是false")
}

条件语句注意事项:

  1. 条件语句不需要使用括号将条件包含起来();
  2. 无论语句体内有几条语句,花括号{}都是必须存在的;
  3. 左花括号{必须与if或者else处于同一行;
  4. 在if之后,条件语句之前,可以添加变量初始化语句,使用;间隔;
  5. 在有返回值的函数中,不允许将“最终的”return语句包含在if...else...结构中,

    否则会编译失败:

例如:

func example(x int) int {
if x == 0 {
return 5
} else {
return x
}
}
  • 选择语句:
	i := 2
switch i{
case 0:
fmt.Print("i == 0")
case 1:
fmt.Print("i == h1")
case 2:
fallthrough
case 3,4,5:
fmt.Print("3,4,5")
default:
fmt.Print("default")
}

switch也可以写成这样:

switch {
case 0 <= Num && Num <= 3:
fmt.Printf("0-3")
case 4 <= Num && Num <= 6:
fmt.Printf("4-6")
case 7 <= Num && Num <= 9:
fmt.Printf("7-9")
}

注意事项:

  1. 左花括号{必须与switch处于同一行;
  2. 条件表达式不限制为常量或者整数
  3. 单个case中,可以出现多个结果选项;
  4. 与C语言等规则相反,Go语言不需要用break来明确退出一个case;
  5. 只有在case中明确添加fallthrough关键字,才会继续执行紧跟的下一个case;
  6. 可以不设定switch之后的条件表达式,在此种情况下,整个switch结构与多个

    if...else...的逻辑作用等同
  • 循环语句

Golang循环只支持for关键字,不支持while和do while

sum := 0
for i := 0;i<10;i++{
sum += 1
}

go语言中的无限循环

sum := 0
for{
sum ++
fmt.printin(sum)
}

go语言的for循环同样支持continue和break来循环控制

	for i := 0;i<5;i++{
for j := 0 ;j < 10;j++{
if j == 5{
continue //结束当前循环
}
fmt.Println(j)
}
if !(i == 3 || i >3){
fmt.Println("取反")
}else{
break
// 结束当前循环
} }
  • 跳转语句
func myfunc() {
i := 0
HERE:
fmt.Println(i)
i++
if i < 10 {
goto HERE
}
}

Golang的流程控制的更多相关文章

  1. golang之流程控制(注意点)

    Go在流程控制方面特点如下: 没有do和while循环,只有一个广义的for语句 switch语句灵活多变,还可以用于类型判断 if语句和switch语句都可以包含一条初始化子语句 break语句和c ...

  2. [golang note] 流程控制

    流程控制 • 流程控制语句作用 ▪ 选择:根据条件跳转到不同的执行序列. ▪ 循环:根据条件反复执行某个序列. ▪ 跳转:据条件返回到某执行序列. • 流程控制语句类型 ▪ 条件语句:关键字为if.e ...

  3. golang笔记——流程控制

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

  4. Golang - 流程控制

    目录 Golang - 流程控制 1. 选择结构 2. 循环结构 3. 跳转语句 Golang - 流程控制 1. 选择结构 if else语句: //package 声明开头表示代码所属包 pack ...

  5. golang(3):strings和strconv使用 & 时间和日期类型 & 指针类型 & 流程控制 & 函数

    strings和strconv使用 . strings.HasPrefix(s string, prefix string) bool: // 判断字符串s是否以prefix开头 . . string ...

  6. golang基础之三-字符串,时间,流程控制,函数

    strings和strconv的使用 strings strings.HasPrefix(s string,preffix string) bool:判断字符串s是否以prefix开头 stirngs ...

  7. golang recover panic 流程控制的可达与不可达

    --------------------------流程控制可达----------------------------- package main import "fmt" fu ...

  8. golang学习笔记(二):流程控制

    欢迎访问我的博客和github! 今天咱们把烦人的事情丢一丢,继续来学习go的基础知识. 这篇文章记录go语言的流程控制和更多类型. 流程控制 for Go 只有一种循环结构:for 循环. 基本的 ...

  9. Golang通脉之流程控制

    流程控制是每种编程语言控制逻辑走向和执行次序的重要部分,流程控制可以说是一门语言的"经脉". Go语言中最常用的流程控制有if和for,而switch和goto主要是为了简化代码. ...

随机推荐

  1. 点云格式-pcd

    每一个pcd文件包含一个文件头,它声明文件中存储的点云数据的特性(元数据).pcd文件头必须用ASCII码来编码.头文件属性字段都以一个新行(\n)分开.从0.7版本开始,pcd文件头包含下面的字段: ...

  2. Jenkins自动构建gitlab项目(jenkins+maven+giltlab+tomcat)

    环境准备: System:CentOS 7.3 (最小化安装) JDK: 8u161 (1.8_161) tomcat: 8.5.29 Jenkins: Jenkins 2.107.1 Gitlab: ...

  3. git操作大全

    分支克隆 1. git clone [git路径] #克隆仓库代码 2. git clone [Git路径] -b [分支name] #克隆仓库下某分支代码 查看分支 1.git branch #查看 ...

  4. div凹角实现

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  5. mysql排序之ORDER BY IF、ORDER BY配合IN、TIMESTAMPDIFF、TIMESTAMPADD、FIELD

    1.order by if 排序 SELECT * FROM pet ORDER BY if (species='snake',0,1),species;--species为snake的行数放置到了查 ...

  6. AS添加依赖报错Unable to merge dex

    AS添加依赖报错Unable to merge dex 最近在给项目添加依赖的时候,要给项目导入Bmob的SDK,参照Bmob的官方文档,可以直接在app的build.gradle文件中添加 //Bm ...

  7. ubuntu安装smartGit

    1.首先安装jdk:(http://www.cnblogs.com/xiaochou/p/install_mint.html 评论区) 2.下载和安装smartGit: http://www.synt ...

  8. CISCO 关闭4786端口解决方法

    先确认交换机是否支持smart install服务 检查命令如下: switch#show vstack config | inc Role Role:Client (SmartInstall ena ...

  9. 阶段01Java基础day26反射

    27.01_反射(类的加载概述和加载时机) A:类的加载概述 当程序要使用某个类时,如果该类还未被加载到内存中,则系统会通过加载,连接,初始化三步来实现对这个类进行初始化. 加载 就是指将class文 ...

  10. web应用及web.xml

    一.创建web应用 1.在任意目录新建webDemo文件夹 2.在webDemo下新建WEB-INF文件夹(注意大小写) 3.在WEB-INF中新建web.xml文件(可以copy已有的web应用中的 ...