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

golang学习笔记10-循环结构

注:本人已有C,C++,Python基础,只写本人认为的重点。
go的循环只有for循环,但有多个语法,可以实现C/C++中的while和do while。当然,for循环也有break和continue,这点和C/C++相同。
语法1
for 循环变量初始化;循环进行条件;循环变量迭代{
//执行语句
}
例1:

for i := 1; i <= 10; i++ {fmt.Println("hello,world", i)
}

例2:

//字符串遍历方式1-传统方式
var str string = "hello,world!北京"
str2 := []rune(str)
for i := 0; i < len(str2); i++ {fmt.Printf("%c \n", str2[i]) //使用到下标...
}

注意go的字符串是以字节形式存储的,当存在一个字节表示不了的字符时,要转成rune切片,所以这里的str2已经是rune切片了。
len是统计变量的容量,源码中有说明,不做赘述。

语法2
for 循环进行条件{
//执行语句
}
例:

j := 1        //循环变量初始化
for j <= 10 { //循环条件fmt.Println("hello,world", j)j++ //循环变量迭代
}

这种情况其实就是C/C++的while,不难看出,把循环条件放循环体末尾就是do while。
语法3
for {
//执行语句
}
上述执行语句如果没有break就是死循环,所以通常要加上break。
例:

k := 1
for { // 这里也等价 for ; ; {if k <= 10 {fmt.Println("ok~~", k)} else {break //break就是跳出这个for循环}k++
}

语法4,for-range

//字符串遍历方式2-for-range
str = "abc~ok上海"
for index, val := range str {fmt.Printf("index=%d, val=%c \n", index, val)
}

显然,for range可以直接遍历UTF-8字符串,因为它会将字符串视作Unicode码点(rune)进行遍历,即:在每次迭代时,for range 会从字符串中提取一个完整的Unicode字符(即一个 rune),同时返回字符的索引和对应的Unicode值,所以我们还需要使用%c才能显示原来的字符。

http://www.lryc.cn/news/444996.html

相关文章:

  • Java高级编程——泛型(泛型类、泛型接口、泛型方法,完成详解,并附有案例+代码)
  • GPU硬件如何实现光栅化?
  • Python写入文件内容:从入门到精通
  • 相亲交易系统源码详解与开发指南
  • Golang | Leetcode Golang题解之第413题等差数列划分
  • 汽车总线之----FlexRay总线
  • 前端代替后端做分页操作
  • L3 逻辑回归
  • Flink系列知识之:Checkpoint原理
  • 智算中心动环监控:构建高效、安全的数字基础设施@卓振思众
  • PyTorch VGG16手写数字识别教程
  • 安卓13删除下拉栏中的设置按钮 android13删除设置按钮
  • FDA辅料数据库在线免费查询-药用辅料
  • git pull 报错 refusing to merge unrelated histories
  • STM32G431RBT6(蓝桥杯)串口(发送)
  • 使用 typed-rest-client 进行 REST API 调用
  • 在Ubuntu 14.04上安装Solr的方法
  • LabVIEW提高开发效率技巧----使用LabVIEW工具
  • Pyspark dataframe基本内置方法(4)
  • 配置win10开电脑时显示可登录账号策略
  • 01-Mac OS系统如何下载安装Python解释器
  • 24 C 语言常用的字符串处理函数详解:strlen、strcat、strcpy、strcmp、strchr、strrchr、strstr、strtok
  • 数据驱动农业——农业中的大数据
  • 学习《分布式》必须清楚的《CAP理论》
  • navicat无法连接远程mysql数据库1130报错的解决方法
  • JetPack01- LifeCycle 监听Activity或Fragment的生命周期
  • OpenCSG推出StarShip SecScan:AI驱动的软件安全革新
  • 占道经营检测-目标检测数据集(包括VOC格式、YOLO格式)
  • 828华为云征文 | 云服务器Flexus X实例:RAG 开源项目 FastGPT 部署,玩转大模型
  • MySQL之基本查询(一)(insert || select)