Golang学习笔记(九)for循环语句
Golang的for相较于java,并不需要使用()括起来,基础for循环格式为for 变量赋值;循环控制条件;变量增量或减量。
第一种基础形式,在for中申明变量,这种变量仅仅作用与该循环。
for i := 0; i < 10; i++ {fmt.Printf("%d ", i)
}
第二种基础形式,在for循环前申明变量,该变量作用于该函数内。该变量可以不写在for关键字后,但";"还是必须要写上。
i := 0
for ; i < 10; i++ {fmt.Printf("%d ", i)
}
第三种基础形式,循环控制语句写在循环内,使用一个break关键字来结束循环。
i := 0
for ; ; i++ {if i > 10 {break}fmt.Printf("%d ", i)
}
第四种基础形式,循环的三个标准值都不在for关键字后写明。PS:虽然if中已经break了,但因为i++是在Printf前面,所以结束前会打印一个11出来。
i := 0
for ; ; {if i > 10 {break}i++fmt.Printf("%d ", i)
}
第五种形式,仅有循环条件,即for关键字后面只有一个条件表达式。
var i int
for i <= 10 {fmt.Println(i)i++
}
第六种形式,无线循环,即for关键字后什么都没有。PS:这里设置了一个if是为了结束这个无限循环;而这里的i++和上面第四种形式的不一样,放在了Println后面,就不会打印一个11出来。
var i int
for {if i == 10 {break}fmt.Println(i)i++
}
示例:用for循环嵌套打印一个99乘法口诀表。
func printFormula() {for i := 1; i < 10; i++ {for j := 1; j <= i; j++ {fmt.Printf("%d × %d = %d ", j, i, i*j)}fmt.Println()}
}
示例:用for循环嵌套和并行for循环,打印一个右下角的直角三角形。PS:嵌套中的第一个for循环是为了打印空格
func printRightTriangle() {for i := 1; i < 10; i++ {for m := 9; m >= i; m-- {fmt.Print(" ")}for j := 1; j <= i; j++ {fmt.Print("★")}fmt.Println()}
}
for循环中,有一个range关键字,是用来遍历集合用的。PS:在UTF-8编码中,一个中文字将占据3个字节,所以学字占了9到11个字符位,习字占据了12到14个字符位。
str := "123ABCabc学习"
for i, value := range str {fmt.Printf("第%d位的字符是:%v ,字符是%c \n", i, value, value)
}
示例:用range关键字获取指定位置的字符。PS:这里获取的第9个字符,为学字。但获取10、11位置的字符则为空,因为中文占用的是三个字符,只能指定该字符第一个占用的位置。
func traverseString() {str := "123ABCabc学习"for i, value := range str {if i == 9 {fmt.Printf("第%d位的字符是:%v ,字符是%c \n", i, value, value)}}
}
示例:使用range来遍历切片。
func traverseSlice() {arr := []int{100, 200, 300}for i, value := range arr {fmt.Println(i, "----", value)}
}
for循环中的continue关键字,这个和break关键字是有区别的,break是直接跳出循环,continue是跳出当此循环,执行下面的循环。PS:对比下面两个循环,使用break的循环,将打印到3就跳出整个循环,使用continue的循环将打印除了4意外的所有数字。
func BreakContinue() {for i := 0; i < 10; i++ {if i == 4 {break}fmt.Print(i)}fmt.Println()for i := 0; i < 10; i++ {if i == 4 {continue}fmt.Print(i)}
}
for循环中的goto关键字,可以在循环中,将代码跳转至指定的自定义代码行。PS:这里第三行的代码是自定义的位置,在循环中,当i增加到可以整除5的时候,自动跳转到第三行代码,即重新执行循环for。
func FilterNumGoto() {i := 0
HAHA:for i < 50 {i++if i%5 == 0 {goto HAHA}fmt.Printf("%d ", i)}
}
示例:通过双循环goto关键字查找100以内的所有素数
func PrimeNumber() {i := 0
LOOP:for i < 100 {i++for j := 2; j < i; j++ {if i%j == 0 {goto LOOP}}fmt.Printf("%d\t", i)}
}
Golang学习笔记(九)for循环语句相关推荐
- golang学习笔记(基础篇)
LCY~~Golang学习笔记 一.Go语言开发环境 ##安装Go开发包以及VsCode Go开发包与vscode配置安装教程网址:https://www.liwenzhou.com/posts/Go ...
- 118云原生编程语言Golang学习笔记
Golang学习笔记 文章目录 1.Go简介 1.1 简介 1.2 设计初衷 1.3 Golang vs Java 1.4 应用领域 1.5 用go语言的公司 2.Go下载和安装 2.1 开发工具 2 ...
- Golang学习笔记之GORM基础使用(二)
本文章主要学习GORM的增删查改.若还没有完成数据库和数据表的创建.定义模型以及数据库的连接请先学习本本专栏文章Golang学习笔记之GORM基础使用(一).本文为学习笔记,通过GORM官方中文文档和 ...
- autoit学习笔记---“While…WEnd”循环
autoit学习笔记---"While-WEnd"循环 (2012-03-26 16:10:58) 标签: 杂谈 分类: 学习笔记之autoit "While-WEnd& ...
- IOS学习笔记(九)之UIAlertView(警告视图)和UIActionSheet(操作表视图)基本概念和使用方法...
IOS学习笔记(九)之UIAlertView(警告视图)和UIActionSheet(操作表视图)基本概念和使用方法 Author:hmjiangqq Email:jiangqqlmj@163.com ...
- python里while的用法_Python学习笔记之While循环用法分析
本文实例讲述了Python学习笔记之While循环用法.分享给大家供大家参考,具体如下: 前面一篇<Python学习笔记之For循环用法>详细介绍了Python for循环,这里再来讲述一 ...
- python3.4学习笔记(九) Python GUI桌面应用开发工具选择
python3.4学习笔记(九) Python GUI桌面应用开发工具选择 Python GUI开发工具选择 - WEB开发者 http://www.admin10000.com/document/9 ...
- 吴恩达《机器学习》学习笔记九——神经网络相关(1)
吴恩达<机器学习>学习笔记九--神经网络相关(1) 一. 非线性假设的问题 二. 神经网络相关知识 1.神经网络的大致历史 2.神经网络的表示 3.前向传播:向量化表示 三. 例子与直觉理 ...
- python中while的用法_Python学习笔记之While循环用法分析
本文实例讲述了Python学习笔记之While循环用法.分享给大家供大家参考,具体如下: 前面一篇<Python学习笔记之For循环用法>详细介绍了Python for循环,这里再来讲述一 ...
- golang学习笔记12 beego table name `xxx` repeat register, must be unique 错误问题
golang学习笔记12 beego table name `xxx` repeat register, must be unique 错误问题 今天测试了重新建一个项目生成新的表,然后复制到旧的项目 ...
最新文章
- DEAP:使用生理信号进行情绪分析的数据库(一、背景介绍与刺激选择)
- 【免费软件测试视频-0016】——LR系列之---协议的选择
- luov之windows 常用端口详解
- 制造业ai中台_如何建立自己的制造者工作台
- bzoj4171: Rhl的游戏
- 这篇PLC编程教程,带你一步步入门PLC!
- java 租房系统源码,JAVA房屋出租管理系统
- [转载]唐僧的亲爹究竟是谁 (2016-02-17 16:37:21)
- Django 中文本地化汉化方法
- Wireshark实验
- C++规范编码引涉语法点之(8)trivial和non-trivial构造/析构/复制/赋值函数 及POD类型
- webstorm激活码
- Mifare S50与Mifare S70
- PhotoShop 初级使用教程——以网易云海报设计为例
- IEEE UV 2022 “Vision Meets Algae” 目标检测竞赛正式启动!
- Vue 实例实战之 Vue webpack 仿去哪儿网App页面开发(应用中的几个页面简单实现)
- android studio 61歌曲服务器搭建 歌曲app 下载 完整代码
- 计算机的网络ip相同,同一Wi-Fi网络上的两台计算机是否具有相同的IP地址? | MOS86...
- LuLu 2.3.1 汉化版(开源的mac应用防护墙软件)
- N-Gram文件格式介绍 - ARPA
热门文章
- 2020年训练狗视频全套课程
- iOS版本PM2.5空气质量监控仪
- 【星际争霸2中的强化学习-1】使用 PySC2 构建虫族机器人
- 移动端网页实现拨打电话功能的几种方法以及点击立刻qq联系
- 【全开源】TP+VUE家政上门服务派单接单技师商家入驻全开源uniapp小程序H5网页公众号
- backlog配置_tcp-backlog配置
- ad敷铜后还有部分飞线_王者荣耀 1技能:250(+50/Lv)(+1.25Ad 这些英文数字代表什么意思 谁能解释...
- java-net-php-python-09大学生交互自助旅游平台的设计与实现计算机毕业设计程序
- 第一篇 大话 Android
- Jquery替换字符串的双引号为空