当前位置: 首页 > article >正文

【新人系列】Golang 入门(三):条件循环

✍ 个人博客:https://blog.csdn.net/Newin2020?type=blog
📝 专栏地址:https://blog.csdn.net/newin2020/category_12898955.html
📣 专栏定位:为 0 基础刚入门 Golang 的小伙伴提供详细的讲解,也欢迎大佬们一起交流~
📚 专栏简介:在这个专栏,我将带着大家从 0 开始入门 Golang 的学习。在这个 Golang 的新人系列专栏下,将会总结 Golang 入门基础的一些知识点,并由浅入深的学习这些知识点,方便大家快速入门学习~
❤️ 如果有收获的话,欢迎点赞 👍 收藏 📁 关注,您的支持就是我创作的最大动力 💪

在这里插入图片描述

1. if else

go 语言中的 if else 写法和 C / C++ 的类似,其中不同的地方如下:

  1. if 后面没有括号,如果你写了括号,则在保存代码时编译器会自动帮你去掉。
  2. if 后面必须大括号,不能像 C / C++ 一样与 if 里面的语句在同一行。
package main

import "fmt"

func main() {
    if 7%2 == 0 {
        fmt.Println("7 is even")
    } else {
        fmt.Println("7 is odd")
    }
    
    if num := 9; num < 0 {
        fmt.Println(num , "is negative")
    } else if num < 10 {
        fmt.Println(num, "has 1 digit")
    } else {
        fmt.Println(num, "has multiple digits")
    }
}

运行结果:

7 is odd
9 has 1 digit

2. for 循环

在 go 语言中并没有什么 while、do while 循环,只有 for 循环。最简单的 for 循环就是在后面什么都不加,代表一个死循环。不过循环的过程中可以使用 break 退出,或者 continue 来跳过本次循环后续的代码。另外,for 中间的三段任何一段都可以省略。

package main

import "fmt"

func main() {
    fmt.Println("first part")
    for {
        fmt.Println("loop")
        break
    }

    fmt.Println("second part")
    for j := 7; j < 9; j++ {
        fmt.Println(j)
    }

    fmt.Println("thrid part")
    for n := 0; n < 5; n++ {
        if n % 2 == 0 {
            continue
        }
        fmt.Println(n)
    }

    fmt.Println("fourth part")
    i := 1
    for i <= 3 {
        fmt.Println(i)
        i++
    }
}

运行结果:

first part
loop
second part
7
8
thrid part
1
3
fourth part
1
2
3

3. range

在 go 语言中可以通过 range 来快速实现遍历操作,在其遍历时,会返回两个值,第一个是索引,第二个是对应位置的值。如果我们不需要索引的话,可以使用下划线来忽略。

package main

import "fmt"

func main() {
        nums := []int{2, 3, 4}
        sum := 0
        for i, num := range nums {
                sum += num
                if num == 2 {
                        fmt.Println("index:", i, "num:", num) // index: 0 num: 2
                }
        }
        fmt.Println(sum) // 9

        m := map[string]string{"a": "A", "b": "B"}
        for k, v := range m {
                fmt.Println(k, v) // b 8; a A
        }
        for k := range m {
                fmt.Println("key", k) // key a; key b
        }
}

4. switch

go 语言中的 switch 也和 C++ / C 中的比较类似,不同的地方如下:

  1. go 语言 switch 后面直接跟的是变量名,而不是加括号。
  2. 在 C++ 中 switch case 如果不加 break 的话会继续往下跑完所有的 case,而在 go 中则不用加 break,就会自动跳出。
  3. go 语言 switch 可以使用任意的变量类型,甚至可以用来取代 if else 语句。可以在 switch 后面不加任何的变量,然后再 case 里面写条件分支,这样会比一连串的 if else 语句逻辑看起来更加清晰。
package main

import (
    "fmt"
    "time"
)

func main() {
    a := 2
    switch a {
    case 1:
        fmt.Println("one")
    case 2:
        fmt.Println("two")
    case 3, 4:
        fmt.Println("three or four")
    default:
        fmt.Println("outer")
    }

    t := time.Now()
    switch {
    case t.Hour() < 12:
        fmt.Println("It's before noon")
    default:
        fmt.Println("It's after noon")
    }
}

运行结果:

two
It's before noon

http://www.kler.cn/a/579227.html

相关文章:

  • P8641 [蓝桥杯 2016 国 C] 赢球票--环形结构问题
  • 深入理解人脸特征向量及图片转换方法与开发架构
  • 大白话react第十四章高阶 React 组件开发和React 状态管理进阶等
  • 第7章 wireshark(网络安全防御实战--蓝军武器库)
  • 2025-03-09 学习记录--C/C++-PTA 习题10-8 递归实现顺序输出整数
  • 一行代码让手机秒变 AI 神器:DeepSeek 手机离线部署
  • 每日一题——三道链表简单题:回文,环形合并有序
  • 大规模语言模型的涌现能力
  • 跟着 Lua 5.1 官方参考文档学习 Lua (10)
  • 智慧城市新基建:AI代理IP如何让城市管理“耳聪目明”?
  • 【07】区块链性能
  • 字符串相乘——力扣
  • vue如何获取session对象
  • docker已创建容器设置自启动
  • PY32MD320单片机 QFN32封装,内置多功能三相 NN 型预驱。
  • 记录小白使用 Cursor 开发第一个微信小程序(二):创建项目、编译、预览、发布(250308)
  • Vue3实战学习(Vue3集成Element-Plus(常用依赖、插件安装与导入 。按钮、图标组件。自定义主题的实现)(超详细))(4)
  • 开源网站模板 html静态网页模板
  • 如是APP:AI精准匹配需求,信用体系重构信任,双轮驱动打造无套路电商
  • (C/S)架构、(B/S)架构