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

【3】流程控制

文章目录

    • 一、分支结构
      • (一)单分支结构
      • (二)分支嵌套
      • (三)switch 分支控制
    • 二、Golang 的循环控制
      • (一)for 循环的第一种写法
      • (二)for 循环的第二种写法
      • (三)for 循环的第三种写法
      • (四)遍历字符串举例

一、分支结构

(一)单分支结构

func main() {
    // 双分支结构
    var a int
    if a > 10 {
       fmt.Println("a")
    } else {        // else 不能换行
       fmt.Println("b")
    }
}

(二)分支嵌套

func main() {
    // 分支嵌套结构
    var a int
    var b int
    if a > 0 {
       if b < 0 {
          fmt.Println("b")
       } else if b == 0 {
          fmt.Println("a")
       }
    } else if a < 0 {
       fmt.Println("a")
    } else {
       fmt.Println("b")
    }
}

(三)switch 分支控制

func main() {
    var a int
    var b int
    switch a + b { // switch 后面接表达式
    case a: // 与 case 后面的值进行匹配,匹配成功后执行语句块,执行完语句块后自动跳出
       fmt.Println("a")
    case b:
       fmt.Println("b")
    case a, b: // 可以进行多个值匹配
       fmt.Println("a")
    default: // 如果 case 后面的值都不满足表达式,则执行 default 后面的值
       fmt.Println("b")
    }
}
  • switch 后面可以是常量、变量、有返回值的函数、表达式,只要是值就可以了。
  • switch 后面值的数据类型需要和 case 后面值的数据类型要保持一致。
  • case 后面可以是一个常量、变量、或者有值的表达式。

二、Golang 的循环控制

func main() {
    // for 循环控制的基本语法
    for i := 10; i > 0; i-- {
       println(i)
    }
}

(一)for 循环的第一种写法

func main() {
    // for 循环控制的基本语法
    for 循环变量初始化; 循环条件判断; 循环变量迭代 {
       循环体
    }
}

执行步骤:

  1. 执行循环变量初始化;
  2. 执行循环条件判断;
  3. 条件为真再进行循环变量迭代。

(二)for 循环的第二种写法

func main() {
    // for 循环控制的第二种写法
    var i int = 10 // 循环变量
    for i < 20 {   // 循环条件
       // 循环体
       println(i)
       // 循环迭代控制
       i--
    }
}

(三)for 循环的第三种写法

func main() {
    // for 循环控制的第三种写法(需要配合 break 使用)
    i := 10 // 循环变量
    for {
       if i < 10 { // 循环条件
          println(i) // 循环体
       } else {
          i-- // 循环迭代控制
       }
    }
}

(四)遍历字符串举例

func main() {
    // for 循环遍历字符串
    pre_s := "hello world 我们"
    // 存在中文字符,由于 for 循环默认遍历按照字节进行遍历,中文占用 3 个字节,直接打印有乱码,需要将字符串转化为切片类型
    s := []rune(pre_s)
    for i := 0; i < len(s); i++ {
       fmt.Printf("index:%d,value:%c\n", i, s[i])
    }
}
func main() {
    s1 := "hello 我们"
    // 使用 for range 时候按照字符进行取值
    for index, value := range s1 {
       fmt.Printf("index: %d, value: %c\n", index, value)
    }
}
  • continue:结束本次循环。
  • break:跳出当前层的整个循环。

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

相关文章:

  • 基于SpringBoot的植物园管理小程序【附源码】
  • Spring框架---AOP技术
  • 【AI开源项目】Botpress - 开源智能聊天机器人平台及其部署方案
  • 【Nginx】编译安装(Centos)
  • OpenEuler 使用ffmpeg x11grab捕获屏幕流,rtsp推流,并用vlc播放
  • 解决方案 | 部署更快,自动化程度高!TOSUN同星线控底盘解决方案
  • HarmonyOS鸿蒙开发入门,常用ArkUI组件学习(一)
  • Spring cloud
  • QT下载安装
  • 为什么要使用Docker?
  • c# 值类型
  • 青少年编程与数学 02-003 Go语言网络编程 02课题、网络分层模型
  • RHCE selinux 和 防火墙(fireword|iptable)
  • 【里程计在激光雷达SLAM中的作用】【gmapping算法hector_mapping算法】
  • 基于 LR(1) 和 LALR 的 Parser Generator
  • (九)JavaWeb后端开发——Servlet
  • 关于read/write 网络IO、硬盘IO的区别
  • PHP的线程安全与非线程安全版本的区别
  • 检索增强生成(RAG)
  • 【ArcGIS】绘制各省碳排放分布的中国地图
  • JAVA题目笔记(十三) 爬虫
  • python源码实例之根据出生日期判断你的星座-001
  • 1105--面试代码题
  • 网络安全渗透实际案例
  • 青少年编程与数学 02-003 Go语言网络编程 09课题、Cookie
  • 机器人技术革新:人工智能的强力驱动