流程控制语句

计算机编程语言中,流程控制语句很重要,可以让机器知道什么时候做什么事,做几次。主要有条件和循环语句。

Golang只有一种循环:for,只有一种判断:if,还有一种特殊的switch条件选择语句。

一、条件语句

举个例子:

    // 判断语句
if a > 0 {
fmt.Println("a>0")
} else {
fmt.Println("a<=0")
}

a > 0时打印a>0,否则打印a<=0。其中条件a > 0不需要加小括号。

条件语句表示如果什么,做什么,否则,做什么。

几种判断形式为:

if a > 0{

}

只有if

if a > 0{

}else{

}

if以及else

if a > 0{

}else if a == 0 {

}else{

}

中间可混入else if

如果中间的条件太多的话,可以使用switch条件语句:

    num := 4

    switch num {
case 3:
fmt.Println(3)
case 4:
fmt.Println(4)
case 5:
fmt.Println(5)
default:
fmt.Println("not found")

这种语句会从case一个个判断,如果找到一个case符合条件,那么进入该case执行指令,否则进入default

上面num := 4将会进入case 4,打印数字4后结束。如果num := 5,将会打印数字5后结束。如果num := 8,会打印字符串 not found。

二、循环语句

循环语句:

    // 循环语句
for i := 9; i <= 10; i++ {
fmt.Printf("i=%d\n", i)
}

其中i是局部变量,循环第一次前被赋予了值9,然后判断是否满足i<=10条件,如果满足那么进入循环打印,每一次循环后会加1,也就是i++,然后继续判断是否满足条件。

形式为:

    for 起始状态; 进入循环需满足的条件; 每次循环后执行的指令 {
}

你也可以死循环:

    // 死循环语句
a = 0
for {
if a >= 10 {
fmt.Println("out")
// 退出循环
break
} a = a + 1
if a > 5 {
continue
} fmt.Println(a)
}

死循环直接for {},后面不需要加条件,然后当a>=10时跳出循环可以使用break,表示跳出for {},对于a > 5,我们不想打印出值,可以使用continue跳过后面的语句fmt.Println(a),提前再一次进入循环。

切片字典都可以使用循环来遍历数据:


e := []int64{1, 2, 3} // slice
f := map[string]int64{"a": 3, "b": 4} // map // 循环切片
for k, v := range e {
fmt.Println(k, v)
} // 循环map
for k, v := range f {
fmt.Println(k, v)
}

切片遍历出来的结果为:数据下标,数据,字典遍历出来的结果为:数据的键,数据的值:

0 1
1 2
2 3
3 3 a 3
b 4
f 5

系列文章入口

我是陈星星,欢迎阅读我亲自写的 数据结构和算法(Golang实现),文章首发于 阅读更友好的GitBook

数据结构和算法(Golang实现)(3)简单入门Golang-流程控制语句的更多相关文章

  1. 数据结构和算法(Golang实现)(1)简单入门Golang-前言

    数据结构和算法在计算机科学里,有非常重要的地位.此系列文章尝试使用 Golang 编程语言来实现各种数据结构和算法,并且适当进行算法分析. 我们会先简单学习一下Golang,然后进入计算机程序世界的第 ...

  2. 数据结构和算法(Golang实现)(2)简单入门Golang-包、变量和函数

    包.变量和函数 一.举个例子 现在我们来建立一个完整的程序main.go: // Golang程序入口的包名必须为 main package main // import "golang&q ...

  3. 数据结构和算法(Golang实现)(4)简单入门Golang-结构体和方法

    结构体和方法 一.值,指针和引用 我们现在有一段程序: package main import "fmt" func main() { // a,b 是一个值 a := 5 b : ...

  4. 数据结构和算法(Golang实现)(5)简单入门Golang-接口

    接口 在Golang世界中,有一种叫interface的东西,很是神奇. 一.数据类型 interface{} 如果你事前并不知道变量是哪种数据类型,不知道它是整数还是字符串,但是你还是想要使用它. ...

  5. 数据结构和算法(Golang实现)(6)简单入门Golang-并发、协程和信道

    并发.协程和信道 Golang语言提供了go关键字,以及名为chan的数据类型,以及一些标准库的并发锁等,我们将会简单介绍一下并发的一些概念,然后学习这些Golang特征知识. 一.并发介绍 我们写程 ...

  6. 数据结构和算法(Golang实现)(7)简单入门Golang-标准库

    使用标准库 一.避免重复造轮子 官方提供了很多库给我们用,是封装好的轮子,比如包fmt,我们多次使用它来打印数据. 我们可以查看到其里面的实现: package fmt func Println(a ...

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

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

  8. CQRS简单入门(Golang)

    一.简单入门之入门 CQRS/ES和领域驱动设计更搭,故整体分层沿用经典的DDD四层.其实要实现的功能概要很简单,如下图. 基础框架选择了https://github.com/looplab/even ...

  9. Java数据结构和算法之数组与简单排序

    一.数组于简单排序 数组 数组(array)是相同类型变量的集合,可以使用共同的名字引用它.数组可被定义为任何类型,可以是一维或多维.数组中的一个特别要素是通过下标来访问它.数组提供了一种将有联系的信 ...

随机推荐

  1. Fiddler4 手机抓包

    1.要对计算机Fiddler进行配置,允许远程计算机连接. 2.保证手机电脑在同一局域网中. 3.手机上设置代理服务器.以华为手机为例,设置-->WLAN-->找到并长按目前所连接的WiF ...

  2. 在ASP.NET MVC中如何预防Cookie的窃取攻击(转载)

    Cookie Cookie is a small piece of data sent by a web server to a web browser. The browser stores thi ...

  3. Servlet(五)----Request登录案例

    ##  案例:用户登录 准备工作: 准备Maven  配置pom.xml <?xml version="1.0" encoding="UTF-8"?> ...

  4. 《面试经典系列》- MySQL数据库存储引擎

    一.MySQL有多少种存储引擎? 在MySQL5之后,支持的存储引擎有十多个,但是我们常用的就那么几种,而且,默认支持的也是 InnoDB. 通过命令:show engines \g,我们可以查看到当 ...

  5. laravel中间件的创建思路分析

    网上有很多解析laravel中间件的实现原理,但是不知道有没有读者在读的时候不明白,作者是怎么想到要用array_reduce函数的? 本文从自己的角度出发,模拟了如果我是作者,我是怎么实现这个中间件 ...

  6. PAT-B 1003. 我要通过!(20) Java版

    "答案正确"是自动判题系统给出的最令人欢喜的回复.本题属于PAT的"答案正确"大派送 -- 只要读入的字符串满足下列条件,系统就输出"答案正确&quo ...

  7. CSS三角形/气泡的实现原理及应用

    记得第一次面试,面试官问如何用css实现一个不规则三角形?好叭 ·-·,触及到知识盲区了,手动叹气(╥﹏╥),好在别的回答的还好,没挂

  8. HDU - 3068 最长回文manacher马拉车算法

    # a # b # b # a # 当我们遇到回判断最长回文字符串问题的时候,若果用暴力的方法来做,就是在字符串中间添加 #,然后遍历每一个字符,找到最长的回文字符串.那么马拉车算法就是在这个基础上进 ...

  9. 1.NET Core 概述

    .NET Core 概述 .NET Core是一个免费的.开源的.跨平台的.广泛使用的Web框架:它是由微软维护的.社区广泛参与支持的一个框架..NET Core可以运行在:Windows.MacOS ...

  10. 使用FME平移shapefile文件