Go语言 if判断和for循环实战 goto使用的那些坑
前言
这篇文章将介绍if判断、for循环、fori循环、for range、for循环作用域、goto如何使用、goto的使用需要注意的问题,以及使用for循环打印9*9乘法表的实战应用。
if判断
基本用法
age := 20
if age > 18 {
fmt.Println("你成年了")
} else {
fmt.Println("你写作业去吧")
}
输出结果:你成年了
多个判断条件 elseif
age := 20
if age > 35 {
fmt.Println("人到中年")
} else if age > 18 {
fmt.Println("青年")
} else {
fmt.Println("少年")
}
输出结果:青年
if判断中的作用域
还有一种特殊用法,作用域:即变量只在for循环内生效,不影响外部的变量。
age := 20
if age := 15; age > 18 {
fmt.Println("你成年了")
} else {
fmt.Println("你写作业去吧")
}
fmt.Println(age)
输出结果:你写作业去吧 20
总结:打印的20是if判断外面定义的age :=20
,如果我们没在if判断外定义age,是不能在if判断外打印age的。
for循环
基本for循环
for i := 0; i < 10; i {
fmt.Println(i)
}
打印结果:
变形1:作用域问题
和上面讲if时一样,for也支持作用域设置,当我们的参数是从外部传入时可以这样写: 省略for循环的第一个参数
i := 5
for ;i<10;i {
fmt.Println(i)
}
打印结果:
变形2:第三个参数写到结构体内部
我们注意看i
的位置
i := 1
for i < 10 {
fmt.Println(i)
i
}
打印结果:
无限循环模式
for {
fmt.Println("无限循环")
}
控制台一直无限循环的打印无限循环
for range 循环
这是我们最常用也是最好用的循环结构体
s := "hello王中阳"
for i, i2 := range s {
fmt.Printf("ikey值为:%v,i2字符为:%c\n",i,i2)
}
打印结果:
跳出for循环之:break
遇到特定情况跳出for循环,不再继续执行时,使用break。
for i := 0; i < 10; i {
if i==5 {
break
}
fmt.Println(i)
}
fmt.Println("打印结束")
打印结果:
跳出for循环之:continue
遇到特定情况跳出本次for循环,继续执行后面的for循环,使用continue。
for i := 0; i < 10; i {
if i == 5 {
continue
}
fmt.Println(i)
}
fmt.Println("打印结束")
打印结果: 我们可以发现下面的打印结果中只是没有打印5,只把i==5的循环跳过了
跳出for循环之:goto
goto是一个非常灵活的用法,这里要重点看一下,很有用。
但是我个人不建议使用goto,因为会让代码变得难懂。了解goto的目的一是为了处理特殊场景,二是为了当别人这么写时我们能看懂,起码知道goto这个概念。
举个栗子:
我们设置一个双重for循环,当遇到C时就跳出循环,不再继续执行。
普通写法如下:
flag := false
for i := 0; i < 10; i {
for j := 'A'; j < 'Z'; j {
if j == 'C' {
flag = true
break
}
fmt.Printf("%v-%c\n", i, j)
}
if flag {
fmt.Println("over")
break
}
}
使用goto
for i := 0; i < 10; i {
for j := 'A'; j < 'Z'; j {
if j == 'C' {
goto xx //跳转到定义的label语句,即直接跳出了for循环
}
fmt.Printf("%v-%c\n", i, j)
}
}
// 定义label
xx:
fmt.Println("over")
总结:用法其实很简单,当我们项目复杂时,合理的使用goto能简化代码;但是千万不要滥用goto,否则会导致代码晦涩难懂。
应用实战
下面让我们开通脑筋,打印9*9乘法表出来吧
不要看答案,先动脑筋想一下吧
.
.
.
给个提示:双重for循环
.
.
.
我的实战代码如下:
for i := 1; i < 10; i {
for j := 1; j <= i; j {
fmt.Printf("%d * %d = %d ", i, j, i*j)
}
fmt.Println()
}
打印结果:
总结
整体来说go语言的if判断和for循环的使用还是非常简单的,我们需要注意作用域问题。至于跳出for循环的操作:break和continue和其他语言是一样的,也非常好理解。
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanfbbcc
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
怎样阻止微信小程序自动打开
PHP中文网 06-13 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
photoshop蒙版画笔没反应怎么办
PHP中文网 06-24