【GO语言基础】控制流

系列文章目录

【Go语言学习】ide安装与配置
【GO语言基础】前言
【GO语言基础】变量常量
【GO语言基础】数据类型
【GO语言基础】控制流


文章目录

  • 系列文章目录
  • 条件语句
    • if-else 结构
    • 判断一个字符串是否为空:
    • switch结构
  • 循环结构
    • for 循环(C风格):
    • for-range循环
  • 控制语句
  • 使用注意


条件语句

if-else 结构

//if结构
if condition {  // 执行代码块  
}//if else结构
if condition {  // 执行代码块1  
} else {  // 执行代码块2  
}

if结构
if 语句:用于根据条件执行代码块

package mainimport "fmt"func main() {var a int = 7var b int = 6if a > b {fmt.Println("a较大")}
}

if else结构
else 语句:与 if 语句一起使用,当 if 的条件不满足时执行。

package mainimport "fmt"func main() {var a int = 7var b int = 6if a > b {fmt.Println("a较大")} else {fmt.Println("b较大")}}

在这里插入图片描述

判断一个字符串是否为空:

1.if str == “”

str := "Hello, World!"
if str == "" {fmt.Println("字符串为空")
} else {fmt.Println("字符串不为空")
}

2.len(str)==0

str := "Hello, World!"
if len(str) == 0 {fmt.Println("字符串为空")
} else {fmt.Println("字符串不为空")
}

switch结构

switch 语句:用于根据表达式的值选择执行不同的代码块。
Go的switch语句与其他语言有些不同,不需要显式添加break语句,它会自动终止执行。

switch expression {  case value1:  // 执行代码块1  case value2:  // 执行代码块2  default:  // 执行默认代码块  
}
package mainimport "fmt"func main() {var a int = 58switch true {case a > 50:fmt.Println("a在50-100之间")case a > 100:fmt.Println("a的值大于100")}
}

在这里插入图片描述

循环结构

for 循环(C风格):

for 循环:用于重复执行一段代码块,通常用于迭代。
初始化、条件、后续操作。

结构:

for 初始化; 条件; 后续操作 {  // 执行循环体代码  
}

示例:

package mainimport "fmt"func main() {//打印1到10for i := 1; i <= 10; i++ {fmt.Println(i)}
}

for-range循环

for-range 循环:用于迭代数组、切片、字符串、映射等数据结构的元素。

package mainimport "fmt"func main() {// 创建一个整数切片numbers := []int{1, 2, 3, 4, 5}// 使用for range遍历切片,并打印每个元素的值for index, value := range numbers {fmt.Printf("Index: %d, Value: %d\n", index, value)}
}

在这里插入图片描述

控制语句

break 语句:用于跳出当前循环(for 或 switch)。
continue 语句:用于跳过当前循环迭代,进入下一次迭代。只能在 for 循环中使用。

package mainimport ("fmt""strconv"
)func main() {for {fmt.Print("请输入整数: ")var inputStr stringfmt.Scanln(&inputStr)// 尝试将输入的字符串转换为整数inputInt, err := strconv.Atoi(inputStr)if err != nil {fmt.Println("请输入正确的整数")continue // 输入不是有效整数,继续下一次循环}// 输出1到输入数据的序列for i := 1; i <= inputInt; i++ {fmt.Println(i)}}
}
package mainimport "fmt"//输出偶数
func main() {for i := 1; i <= 10; i++ {if i%2 == 0 {fmt.Println(i)} else {continue //跳出13579,输出偶数}}
}

在这里插入图片描述

使用注意

  1. 关键字 if 和 else 之后的左大括号 { 必须和关键字在同一行,如果你使用了 else-if 结构,则前段代码块的右大括号 } 必须和 else-if 关键字在同一行。
    错误写法
if x{
}
else {  // 无效的写法
}
  1. 返回某个值以及 true 表示成功;返回零值(或 nil)和 false 表示失败,在上面实例中我们使用nil判断是否为数字。
  2. 死循环时注意跳出。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/108834.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

微服务高可用容灾架构设计

导语 相对于过去单体或 SOA 架构&#xff0c;建设微服务架构所依赖的组件发生了改变&#xff0c;因此分析与设计高可用容灾架构方案的思路也随之改变&#xff0c;本文对微服务架构落地过程中的几种常见容灾高可用方案展开分析。 作者介绍 刘冠军 腾讯云中间件中心架构组负责…

【17 > 分布式接口幂等性】2. Update的幂等性原理解析

一、 根据 唯一业务号去更新 数据的情况 1.1 原理 1.2 操作 1.3 实战 Stage 1&#xff1a;表添加 version 字段 Stage 2&#xff1a;前端 > 版本号放入隐藏域 Stage 3&#xff1a;后台 > 使用版本号作为更新条件 二、更新操作没有唯一业务号&#xff0c;可使用Tok…

黑马头条 热点文章实时计算、kafkaStream

热点文章-实时计算 1 今日内容 1.1 定时计算与实时计算 1.2 今日内容 kafkaStream 什么是流式计算kafkaStream概述kafkaStream入门案例Springboot集成kafkaStream 实时计算 用户行为发送消息kafkaStream聚合处理消息更新文章行为数量替换热点文章数据 2 实时流式计算 2…

IDEA2023.2.1取消空包隐藏,切换包结构(Compact Middle Packages)

解决2023版idea的包结构 取消勾选即可。 取消勾选Compact Middle Packages选项后&#xff0c;再创建包时&#xff0c;即可自动创建树形结构。 仅供学习使用&#xff01;

模方新建工程时,显示空三与模型坐标系不一致怎么解决

答:检查空三xml与模型的metadata.xml的坐标系是否一致&#xff0c;metadata文件是否有在data目录外面。 模方是一款针对实景三维模型的冗余碎片、水面残缺、道路不平、标牌破损、纹理拉伸模糊等共性问题研发的实景三维模型修复编辑软件。模方4.0新增单体化建模模块&#xff0c;…

安装 Gin 框架

首先需要在目录下初始化一下 go 项目 go init可以看到生成了一个go.mod文件&#xff0c;然后使用以下命令安装 gin 框架 go get -u github.com/gin-gonic/gin养成一个好习惯&#xff0c;在写项目之前先初始化项目 go mod init go mod tidy如果不初始化项目的话没有第三方库补…

递归算法学习——图像渲染,岛屿的数量,最大的岛屿

目录 ​编辑 一&#xff0c;图像渲染 1.题意 2.解释 3.题目接口 4.解题思路及代码 二&#xff0c;岛屿的数量 1.题意 2.解释 3.题目接口 4.解题思路及代码 三&#xff0c;最大的岛屿 1.题意 2.解释 3.题目接口 4.解题代码即思路 一&#xff0c;图像渲染 1.题意…

【面试题】前端开发中如何高效渲染大数据量?

前端面试题库 &#xff08;面试必备&#xff09; 推荐&#xff1a;★★★★★ 地址&#xff1a;前端面试题库 【国庆头像】- 国庆爱国 程序员头像&#xff01;总有一款适合你&#xff01; 在日常工作中&#xff0c;较少的能遇到一次性往页面中插入大量数据的场景…

通过Git Bash将本地文件上传到本地github

1. 新建一个仓库&#xff08; Repository&#xff09; 1.1登录Github&#xff0c;点击个人头像&#xff0c;点击Your repositories&#xff0c;点击New。 1.2 填写信息 Repository name: 仓库名称 Description(可选): 仓库描述介绍,不是必填项目。~~建议填写上哦&#xff01;…

IIC协议理解及驱动OLED屏

1.iic协议是串行半双工总线&#xff0c;主要应用于近距离&#xff0c;低速芯片之间通信。 两根线 SCL SDA 2.IIC总线通讯过程 1.主机发送起始信号占用总线 2.主机发送一个字节数据指明从机地址和后续字节的传输方向。 七位地址位一位来调节后续字节传输方向 最后一位&…

echarts静态饼图

<div class"cake"><div id"cakeChart"></div></div> import * as echarts from "echarts";mounted() {this.$nextTick(() > {this.getCakeEcharts()})},methods: {// 饼状图getCakeEcharts() {let cakeChart echart…

Day_14 > 指针进阶(3)> bubble函数

目录 1.回顾回调函数 2.写一个bubble_sort函数 2.1认识一下qsort函数 ​编辑2.2写bubble_sort函数 今天我们继续深入学习指针 1.回顾回调函数 我们回顾一下之前学过的回调函数 回调函数就是一个通过函数指针调用的函数 如果你把函数的指针&#xff08;地址&#xff09;…