Go语言之fo循环与条件判断

 更新时间:2021年10月12日 17:08:11   作者:Mr-Yang  
这篇文章主要介绍Go语言之fo循环与条件判断,for 循环是一个循环控制结构,可以执行指定次数的循环。下面文章我们结合条件判断,感兴趣的朋友可以参考一下

一、for循环

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语句

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
无匹配

到此这篇关于Go语言之fo循环与条件判断的文章就介绍到这了,更多相关Go语言循环与条件判断内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 使用Go创建一个TCP服务器的操作步骤

    使用Go创建一个TCP服务器的操作步骤

    在网络编程中,TCP 是最常见的传输协议之一,Go 提供了 net 包,可以方便地实现 TCP 服务器与客户端通信,本篇将以实战形式演示如何用 Go 创建一个 TCP 服务器,并让多个客户端与之通信,需要的朋友可以参考下
    2025-08-08
  • go sync.Map基本原理深入解析

    go sync.Map基本原理深入解析

    这篇文章主要为大家介绍了go sync.Map基本原理深入解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-01-01
  • 浅谈Golang的new与make区别是什么

    浅谈Golang的new与make区别是什么

    本文主要介绍了Golang的new与make区别是什么,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-04-04
  • Go 语言中的 http.FileSystem详细解析

    Go 语言中的 http.FileSystem详细解析

    在本文中,我们深入探讨了 Go 语言中的 http.FileSystem 接口,并介绍了它的基本原理、使用方法以及实际应用场景,感兴趣的朋友跟随小编一起看看吧
    2024-03-03
  • 详解minio分布式文件存储

    详解minio分布式文件存储

    MinIO 是一款基于 Go 语言的高性能、可扩展、云原生支持、操作简单、开源的分布式对象存储产品,这篇文章主要介绍了minio分布式文件存储,需要的朋友可以参考下
    2023-10-10
  • Goland支持泛型了(上机实操)

    Goland支持泛型了(上机实操)

    Go的泛型不是还在设计草图吗?最乐观估计也要2021年8月份。你说Go语言现在都没开发好泛型,你支持这个特性有什么用呢?感兴趣的朋友跟随小编一起看看吧
    2020-12-12
  • golang标准库strconv常用方法

    golang标准库strconv常用方法

    在Go语言中,strconv 包提供了许多用于字符串和基本数据类型之间转换的函数,今天通过本文给大家介绍golang标准库strconv常用方法,感兴趣的朋友跟随小编一起看看吧
    2025-10-10
  • golang中range在slice和map遍历中的注意事项

    golang中range在slice和map遍历中的注意事项

    今天小编就为大家分享一篇关于golang中range在slice和map遍历中的注意事项,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-04-04
  • Golang并发编程重点讲解

    Golang并发编程重点讲解

    这篇文章主要介绍了Golang并发编程,在许多环境中,实现对共享变量的正确访问所需要的微妙之处使并发编程变得困难。Go鼓励一种不同的方法,在这种方法中,共享值在通道中传递,实际上,从不由单独的执行线程主动共享
    2023-04-04
  • Golang 实现分片读取http超大文件流和并发控制

    Golang 实现分片读取http超大文件流和并发控制

    这篇文章主要介绍了Golang 实现分片读取http超大文件流和并发控制,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-12-12

最新评论