分享
  1. 首页
  2. 文章

Golang学习笔记-1.9 for循环

xunk1900 · · 2628 次点击 · · 开始浏览
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

本文系第九篇Golang语言学习教程
Go语言只有For这一种循环语句。For循环有三种形式,只有其中一种使用分号。

  • 与其他语言for类似
for init; condition; post { 
}
  • 和while类似
for condition { 
}
  • 和其他语言for {;;}类似
for { 
}

init:一般为赋值表达式,为循环变量赋初值
condition:循环控制条件,关系表达式或逻辑表达式
post:一般为赋值表达式,给循环变量增量或减量

下面通过几个例子来理解循环
例1

package main
import "fmt"
func main(){
 for i :=1; i <=10; i++{ //i=1,且i<=10,每次循环+1
 fmt.Printf(" %d", i)
 }
}

以上例子中,分别以分号;定义了init,condition,post

初始化语句只执行一次,循环初始化后,将检查循环条件,如果结果为true,则执行{ }中的循环体;post语句在每次成功循环迭代后执行,在执行完post后,条件将被再次检查,若结果为true,则循环继续执行,否则循环结束。

例2

package main
import "fmt"
func main(){
 j := 0
 for ; j <= 10; { //两个 ; 可以省略
 fmt.Printf(" %d", j)
 j += 2
 }
}

以上例子中,初始化语句和post语句都被省略,j在for循环外就被初始化为0,只要条件j <= 10为true,循环就会执行,并且在循环中 j 以2的增量自增。
以上程序打印了0到10所有的偶数:0 2 4 6 8 10

例3

package main
import "fmt"
func main(){
 for {
 fmt.Println("Hello,world!")
 }
}

以上程序是一个无限循环程序,会不停的输出Hello,world!

break

break用于在完成正常执行之前突然中止for循环,之后程序会开始在for循环下一行代码执行。
例4

package main
import "fmt"
func main(){
 for a := 0; a <= 10; a++{
 if a >5 {
 break
 }
 fmt.Printf(" %d", a)
 }
 fmt.Println("\nthis go is stop")
}

以上程序在循环开始后首先判断a > 5条件是否成立,若不成立,继续打印a的值,继续循环;若成立,则break终止循环,继续执行下面的打印 this go is stop
循环打印结果为:

0 1 2 3 4 5

this go is stop

continue

continue用来跳出当前循环,在continue语句后所有的循环都不会再本次循环中执行,循环体会在下一次循环中继续执行。
例5

package main
import "fmt"
func main(){
 for b := 0; b <= 10; b++{
 if b%2 == 0 {
 continue
 }
 fmt.Printf(" %d", b)
 }
}

以上程序在循环开始后首先判断b除以2的余数是不是0(b%2 == 0),若结果为成立,则跳出本次循环,后面的语句不会被执行;若不成立,则继续执行后面的语句。
循环打印的结果为:
1 3 5 7 9

例6
for循环中可以声明和操作多个变量:

package main
import "fmt"
func main(){
 for yes, no :=10,1; yes <=20 && no <=10 ; yes, no = yes+1, no+1 {
 fmt.Printf("\n%d * %d = %d", yes,no,yes * no )
 }
}

以上程序声明yes和no的值,&&用来确保yes的值小于20并且no的值小于10,每次循环完成后yes和no自增1
循环打印的结果为:

10 * 1 = 10
11 * 2 = 22
12 * 3 = 36
13 * 4 = 52
14 * 5 = 70
15 * 6 = 90
16 * 7 = 112
17 * 8 = 136
18 * 9 = 162
19 * 10 = 190

以上为学习Golang 循环篇


有疑问加站长微信联系(非本文作者)

本文来自:简书

感谢作者:xunk1900

查看原文:Golang学习笔记-1.9 for循环

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

关注微信
2628 次点击
添加一条新回复 (您需要 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传

用户登录

没有账号?注册
(追記) (追記ここまで)

今日阅读排行

    加载中
(追記) (追記ここまで)

一周阅读排行

    加载中

关注我

  • 扫码关注领全套学习资料 关注微信公众号
  • 加入 QQ 群:
    • 192706294(已满)
    • 731990104(已满)
    • 798786647(已满)
    • 729884609(已满)
    • 977810755(已满)
    • 815126783(已满)
    • 812540095(已满)
    • 1006366459(已满)
    • 692541889

  • 关注微信公众号
  • 加入微信群:liuxiaoyan-s,备注入群
  • 也欢迎加入知识星球 Go粉丝们(免费)

给该专栏投稿 写篇新文章

每篇文章有总共有 5 次投稿机会

收入到我管理的专栏 新建专栏