Go 语言 if 判断和 for 循环实战 goto 使用的那些坑
这篇文章将介绍 if 判断、for 循环、fori 循环、for range、for 循环作用域、goto 如何使用、goto 的使用需要注意的问题,以及使用 for 循环打印 9*9 乘法表的实战应用。
if 判断
基本用法
输出结果:你成年了
多个判断条件 elseif
输出结果:青年
if 判断中的作用域
还有一种特殊用法,作用域:即变量只在 for 循环内生效,不影响外部的变量。
输出结果:你写作业去吧 20
总结:打印的 20 是 if 判断外面定义的age :=20
,如果我们没在 if 判断外定义 age,是不能在 if 判断外打印 age 的。
for 循环
基本 for 循环
打印结果:
变形 1:作用域问题
和上面讲 if 时一样,for 也支持作用域设置,当我们的参数是从外部传入时可以这样写:省略 for 循环的第一个参数
打印结果:
变形 2:第三个参数写到结构体内部
我们注意看i++
的位置
打印结果:
无限循环模式
控制台一直无限循环的打印无限循环
for range 循环
这是我们最常用也是最好用的循环结构体
打印结果:
跳出 for 循环之:break
遇到特定情况跳出 for 循环,不再继续执行时,使用 break。
打印结果:
跳出 for 循环之:continue
遇到特定情况跳出本次 for 循环,继续执行后面的 for 循环,使用 continue。
打印结果:我们可以发现下面的打印结果中只是没有打印 5,只把 i==5 的循环跳过了
跳出 for 循环之:goto
goto 是一个非常灵活的用法,这里要重点看一下,很有用。
但是我个人不建议使用 goto,因为会让代码变得难懂。了解 goto 的目的一是为了处理特殊场景,二是为了当别人这么写时我们能看懂,起码知道 goto 这个概念。
举个栗子:
我们设置一个双重 for 循环,当遇到 C 时就跳出循环,不再继续执行。
普通写法如下:
使用 goto
总结:用法其实很简单,当我们项目复杂时,合理的使用 goto 能简化代码;但是千万不要滥用 goto,否则会导致代码晦涩难懂。
应用实战
下面让我们开通脑筋,打印 9*9 乘法表出来吧
不要看答案,先动脑筋想一下吧
.
.
.
给个提示:双重 for 循环
.
.
.
我的实战代码如下:
打印结果:
总结
整体来说 go 语言的 if 判断和 for 循环的使用还是非常简单的,我们需要注意作用域问题。至于跳出 for 循环的操作:break 和 continue 和其他语言是一样的,也非常好理解。
关于 for 循环,除了打印 9*9 乘法表这类好玩的实战,大家还有哪些经典案例欢迎在评论区留言。
一起学习,升级打怪
我们搞了一个对学 Go 真正有帮助的群,欢迎加入:
公众号:程序员升级打怪之旅
微信号:wangzhongyang1993
版权声明: 本文为 InfoQ 作者【王中阳Go】的原创文章。
原文链接:【http://xie.infoq.cn/article/2321de7a7b7b6c13627849da5】。文章转载请联系作者。
评论