Go语言之循环与条件判断

Go 语言中没有 while 循环,只有一个 for 循环

for 变量初始化;条件;变量自增/自减 {
    循环体内容
}

1、基本使用

for i := 0; i < 10; i++ {
   fmt.Println(i)
}

2、省略第一部分

i := 0
for ; i < 10; i++ {
   fmt.Println(i)
}

3、省略第一和三部分(这是一个 while 循环) for 条件 { 循环体内容 }

i := 0
for i < 10 {
   fmt.Println(i)
   i++
}

4、死循环

for {
    fmt.Println("死循环")
}

5、开多协程演示

for i := 0; i < 2000; i++ {
   go test()
}

func test() {
    for {
        fmt.Println("死循环")
    }
}

6、break:结束本次 for 循环,continue 结束本次循环,继续下一次循环

Switch 是一个条件语句,用于将表达式的值与可能匹配的选项列表进行比较,并根据匹配情况执行相应的代码块,它可以被认为是替代多个 if else 语句的常用方式

1、基本使用

num := 4
switch num {
case 1:
   fmt.Println("1")
case 2:
   fmt.Println("2")
case 3:
   fmt.Println("3")
case 4:
   fmt.Println("4")
}

// 输出
4

2、默认情况(都没有匹配上)

num := 5
switch num {
case 1:
   fmt.Println("1")
case 2:
   fmt.Println("2")
case 3:
   fmt.Println("3")
case 4:
   fmt.Println("4")
default:
   fmt.Println("都没有匹配上")
}

// 输出
都没有匹配上

3、多表达式判断

num := 44
switch num {
case 11, 12, 13, 14:
   fmt.Println("1")
case 21, 22:
   fmt.Println("2")
case 31, 33:
   fmt.Println("3")
case 40, 43, 44:
   fmt.Println("4")
default:
   fmt.Println("都没有匹配上")
}

// 输出
4

4、无表达式的 Switch

num := 44
switch {
case num == 11, num == 12:
   fmt.Println(11, 12)
case num == 40, num == 44:
   fmt.Println(40, 44)
}

// 输出
40 44

5、Fallthrough(穿透,只要看到 fallthrough,无条件执行下一个 case 或者 default )

num := 12
switch {
case num == 11, num == 12:
   fmt.Println(11, 12)
   fallthrough
case num == 40, num == 44:
   fmt.Println(40, 44)
   fallthrough
default:
   fmt.Println("无匹配")
}

// 输出
11 12
40 44
无匹配

Original: https://www.cnblogs.com/XiaoYang-sir/p/15375719.html
Author: Mr-Yang`
Title: Go语言之循环与条件判断

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/516572/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • Go 语言实现 gRPC 的发布订阅模式,REST 接口和超时控制

    在多个平台的阅读量都创了新高,在 oschina 更是获得了首页推荐,阅读量到了 1w+,这已经是我单篇阅读的高峰了。 看来只要用心写还是有收获的。 这篇咱们还是从实战出发,主要介…

    Go语言 2023年5月25日
    071
  • 听说,99% 的 Go 程序员都被 defer 坑过

    先声明:我被坑过。 出问题就对了,这个小东西坏的很,一不留神就出错。 所以,面对这种情况,我们今天就不讲道理了。直接把我珍藏多年的代码一把梭,凭借多年踩坑经历和写 BUG 经验,我…

    Go语言 2023年5月25日
    072
  • Go语言实现大数开方程序

    Go语言的big包实现大数运算,但是有关大整数运算,似乎没有相应的开方程序。 这里给出的程序,实现了大整数的开方运算函数。该程序是基于大整数开方运算的算法实现的。 Go语言程序: …

    Go语言 2023年5月29日
    064
  • Golang WaitGroup源码解析

    Go WaitGroup源码解析 结构体 type WaitGroup struct { noCopy noCopy state1 [3]uint32 } 其中state1代表三个…

    Go语言 2023年5月25日
    088
  • 系统调用跟踪——分析(一)

    通过strace工具可跟踪用户进程与Linux内核的调用交互,可看到其中的System Call(系统调用)情况; &#x5B89;&#x88C5;strace&a…

    Go语言 2023年5月25日
    099
  • Go学习【02】:理解Gin,搭一个web demo

    Go Gin 框架 说Gin是一个框架,不如说Gin是一个类库或者工具库,其包含了可以组成框架的组件。这样会更好理解一点。 举个🌰 端口监听 用于监听请求,也就是服务 请求处理 请…

    Go语言 2023年5月25日
    080
  • golang 标准库template的代码生成

    最近,随着 antd Pro v5 的升级,将项目进行了升级,现在生成的都是 ts 代码。这个项目的自动生成代码都是基于 golang 的标准库 template 的,所以这篇博客…

    Go语言 2023年5月25日
    049
  • go语言学习笔记

    最近一直在学习go语言,因此打算学习的时候能够记录一下笔记。我这个人之前是从来没有记录笔记的习惯,一直以来都是靠强大的记忆力去把一些要点记住。读书的时候因为一直都是有一个很安静和很…

    Go语言 2023年5月29日
    055
  • go-micro使用Consul做服务发现的方法和原理

    go-micro v4默认使用mdns做服务发现。不过也支持采用其它的服务发现中间件,因为多年来一直使用Consul做服务发现,为了方便和其它服务集成,所以还是选择了Consul。…

    Go语言 2023年5月25日
    092
  • 第十五章:指针类型

    本篇翻译自《Practical Go Lessons》 Chapter 15: Pointer type 1 你将在本章将学到什么? 什么是指针? 什么时指针类型? 如何去创建并使…

    Go语言 2023年5月25日
    067
  • 新作:轻量级Golang IoC容器——iocgo

    习惯于Java或者C#开发的人应该对控制反转与依赖注入应该再熟悉不过了。在Java平台有鼎鼎大名的Spring框架,在C#平台有Autofac,Unity,Windsor等,我当年…

    Go语言 2023年5月25日
    080
  • 基于LSM的Key-Value数据库实现WAL篇

    上篇文章简单的实现了基于LSM数据库的初步版本,在该版本中如数据写入到内存表后但还未持久化到SSTable排序字符串表,此时正好程序崩溃,内存表中暂未持久化的数据将会丢失。 引入W…

    Go语言 2023年5月25日
    065
  • Excelize 发布 2.6.0 版本,功能强大的 Excel 文档基础库

    Excelize 是 Go 语言编写的用于操作 Office Excel 文档基础库,基于 ECMA-376,ISO/IEC 29500 国际标准。可以使用它来读取、写入由 Mic…

    Go语言 2023年5月25日
    086
  • Go语言之函数

    函数就是一块执行特定任务的代码,在输入源的基础上通过一些算法生成预期的输出。 Go 语言中的函数声明语法如下: func 函数名(参数名 类型,参数名 类型)(返回值1类型,返回值…

    Go语言 2023年5月25日
    042
  • 自己实现一个Controller——标准型

    标准Controller 上一篇通过一个简单的例子,编写了一个controller-manager,以及一个极简单的controller。从而对controller的开发有个最基本…

    Go语言 2023年5月25日
    090
  • GO语言常用时间工具类 timeUtil.go

    package util import “time” /*获取时间戳(纳秒)Testner 20210123/func GetTime_UnixNano()…

    Go语言 2023年5月29日
    077
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球