流程控制

  • 条件语句

例:

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. redis 持久化共享 Session

    https://docs.microsoft.com/zh-cn/azure/redis-cache/cache-aspnet-session-state-provider

  2. Spring Boot Actuator [监控与管理]

    1. 如何添加 2. actuator 的原生端点(API) 2.1 应用类配置 2.1.1 http://localhost:8080/actuator/conditions 2.1.2 http: ...

  3. 【转】IIS - 自动申请、部署Let's Encrypt的免费SSL证书

    IIS - 自动申请.部署Let's Encrypt的免费SSL证书(让网站实现HTTPS协议) 2017-12-19发布:hangge阅读:161   一.HTTPS 协议介绍 1,什么是 HTTP ...

  4. es6,es7,es8

    概述 ES全称ECMAScript,ECMAScript是ECMA制定的标准化脚本语言.目前JavaScript使用的ECMAScript版本为ECMAScript-262. ECMAScript 标 ...

  5. oracle中的SQL优化

    一.SQL语言的使用1.IN 操作符    用IN写出来的SQL的优点是比较容易写及清晰易懂,这比较适合现代软件开发的风格.    但是用IN的SQL性能总是比较低的,从ORACLE执行的步骤来分析用 ...

  6. CTF资料

    题目大概有这么几个 web,密码学,pwn(综合渗透),misc(杂项),reverse(逆向),ppc(编程类) 入门: http://bobao.360.cn/ctf/  360的CTF训练营ww ...

  7. Applet

    Applet简介: 可以翻译为小应用程序,Java Applet就是用Java语言编写的这样的一些小应用程序,它们可以直接嵌入到网页中,并能够产生特殊的效果.包含Applet的网页被称为Java-po ...

  8. inout口在modelsim仿真的方法

    //主要是// 和**********部分是关键 1 `timescale 1ns/1ns module tb(); reg main_clk; :] addr; reg FPGA_CS0;//FPG ...

  9. Elasticsearch安装部署教程

    1)下载elasticsearch-1.1.2.zip 2)用ssh工具连接目录主机,在命令窗口输入:mkdir -p /opt/elasticsearch创建elasticsearch文件夹   3 ...

  10. Linux 文件系统(一)---虚拟文件系统VFS----超级块、inode、dentry、file

    转自:http://blog.csdn.net/shanshanpt/article/details/38943731 http://elixir.free-electrons.com/linux/v ...