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循环语句相关推荐

  1. golang学习笔记(基础篇)

    LCY~~Golang学习笔记 一.Go语言开发环境 ##安装Go开发包以及VsCode Go开发包与vscode配置安装教程网址:https://www.liwenzhou.com/posts/Go ...

  2. 118云原生编程语言Golang学习笔记

    Golang学习笔记 文章目录 1.Go简介 1.1 简介 1.2 设计初衷 1.3 Golang vs Java 1.4 应用领域 1.5 用go语言的公司 2.Go下载和安装 2.1 开发工具 2 ...

  3. Golang学习笔记之GORM基础使用(二)

    本文章主要学习GORM的增删查改.若还没有完成数据库和数据表的创建.定义模型以及数据库的连接请先学习本本专栏文章Golang学习笔记之GORM基础使用(一).本文为学习笔记,通过GORM官方中文文档和 ...

  4. autoit学习笔记---“While…WEnd”循环

    autoit学习笔记---"While-WEnd"循环 (2012-03-26 16:10:58) 标签: 杂谈 分类: 学习笔记之autoit "While-WEnd& ...

  5. IOS学习笔记(九)之UIAlertView(警告视图)和UIActionSheet(操作表视图)基本概念和使用方法...

    IOS学习笔记(九)之UIAlertView(警告视图)和UIActionSheet(操作表视图)基本概念和使用方法 Author:hmjiangqq Email:jiangqqlmj@163.com ...

  6. python里while的用法_Python学习笔记之While循环用法分析

    本文实例讲述了Python学习笔记之While循环用法.分享给大家供大家参考,具体如下: 前面一篇<Python学习笔记之For循环用法>详细介绍了Python for循环,这里再来讲述一 ...

  7. python3.4学习笔记(九) Python GUI桌面应用开发工具选择

    python3.4学习笔记(九) Python GUI桌面应用开发工具选择 Python GUI开发工具选择 - WEB开发者 http://www.admin10000.com/document/9 ...

  8. 吴恩达《机器学习》学习笔记九——神经网络相关(1)

    吴恩达<机器学习>学习笔记九--神经网络相关(1) 一. 非线性假设的问题 二. 神经网络相关知识 1.神经网络的大致历史 2.神经网络的表示 3.前向传播:向量化表示 三. 例子与直觉理 ...

  9. python中while的用法_Python学习笔记之While循环用法分析

    本文实例讲述了Python学习笔记之While循环用法.分享给大家供大家参考,具体如下: 前面一篇<Python学习笔记之For循环用法>详细介绍了Python for循环,这里再来讲述一 ...

  10. golang学习笔记12 beego table name `xxx` repeat register, must be unique 错误问题

    golang学习笔记12 beego table name `xxx` repeat register, must be unique 错误问题 今天测试了重新建一个项目生成新的表,然后复制到旧的项目 ...

最新文章

  1. DEAP:使用生理信号进行情绪分析的数据库(一、背景介绍与刺激选择)
  2. 【免费软件测试视频-0016】——LR系列之---协议的选择
  3. luov之windows 常用端口详解
  4. 制造业ai中台_如何建立自己的制造者工作台
  5. bzoj4171: Rhl的游戏
  6. 这篇PLC编程教程,带你一步步入门PLC!
  7. java 租房系统源码,JAVA房屋出租管理系统
  8. [转载]唐僧的亲爹究竟是谁 (2016-02-17 16:37:21)
  9. Django 中文本地化汉化方法
  10. Wireshark实验
  11. C++规范编码引涉语法点之(8)trivial和non-trivial构造/析构/复制/赋值函数 及POD类型
  12. webstorm激活码
  13. Mifare S50与Mifare S70
  14. PhotoShop 初级使用教程——以网易云海报设计为例
  15. IEEE UV 2022 “Vision Meets Algae” 目标检测竞赛正式启动!
  16. Vue 实例实战之 Vue webpack 仿去哪儿网App页面开发(应用中的几个页面简单实现)
  17. android studio 61歌曲服务器搭建 歌曲app 下载 完整代码
  18. 计算机的网络ip相同,同一Wi-Fi网络上的两台计算机是否具有相同的IP地址? | MOS86...
  19. LuLu 2.3.1 汉化版(开源的mac应用防护墙软件)
  20. N-Gram文件格式介绍 - ARPA

热门文章

  1. 2020年训练狗视频全套课程
  2. iOS版本PM2.5空气质量监控仪
  3. 【星际争霸2中的强化学习-1】使用 PySC2 构建虫族机器人
  4. 移动端网页实现拨打电话功能的几种方法以及点击立刻qq联系
  5. 【全开源】TP+VUE家政上门服务派单接单技师商家入驻全开源uniapp小程序H5网页公众号
  6. backlog配置_tcp-backlog配置
  7. ad敷铜后还有部分飞线_王者荣耀 1技能:250(+50/Lv)(+1.25Ad 这些英文数字代表什么意思 谁能解释...
  8. java-net-php-python-09大学生交互自助旅游平台的设计与实现计算机毕业设计程序
  9. 第一篇 大话 Android
  10. Jquery替换字符串的双引号为空