查看: 1420|回复: 0
打印 上一主题 下一主题

【跟汉云自学】从零学Golang(三):控制流

[复制链接] qrcode

26

主题

32

帖子

96

积分

注册会员

Rank: 2

积分
96
楼主
跳转到指定楼层
发表于 2016-3-30 08:59 PM | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

之前已经发过两篇了,由于时间紧,加班多,所以耽误了好久。如下是链接。

【跟汉云自学】 从零学Golang(一):进入GO的世界

【跟汉云自学】 从零学Golang(二):变量与基本类型

————————————————————————————————————————————————————————————————

今天就是第三篇了。

控制流可以一种语言很重要的一个部分。

if-else

例如:

可以看到if后的条件可以不用加括号的。

但是大括号是必须的,并且要与if在同一行。

if 的表达式也可以用逻辑运算符。

如:


goto

这个的用法与C语言相似

 

for

for init; condition; post { }

for condition { }

for { }

第一种与C语言的for一样的用法

第二种相当于C语言中的while

第三种就是一个死循环

 

break

提前退出循环,终止当前的循环。

不同的一点用法,看上去很高级。

循环嵌套循环时,可以在break后指定标签。用标签决定哪个循环被终止:


这里的break终止了J标号的那个循环。

 

continue

用法与C语言一样,跳过本次循环。

 

range

这是个迭代器,当被调用的时候,从它循环的内容中返回一个键值对。基于

不同的内容,range返回不同的东西。

 

switch

表达式不必是常量或整数,执行的过程从上至下,直到找到匹配项.

switch没有表达式时,相当于if-else-if-else

虽然是从上到下匹配,但是匹配失败后不会自动向下继续匹配的。

但是可以用fallthrough让它继续匹配去。

如:

s=1的时候,程序是不会去执行case 1的。但是在case 0那里加上fallthrough,当s=1时,才会继续向下匹配的。这就是为什么switch里没有用到break的原因吧。

default的用法与C语言的用法倒是一样的。

case后可以不止一个条件,可以是多个,用逗号隔开。

如:

case 1,2,3,4,5:

C语言中要写成:

这些控制语句是构成算法的基本单位了,当然还是数据结构等等,多好的算法,都是在这些语句间的组合了。

————————————————————————————————————————————————————————————————

作业:

日历,确定每个月的天数。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表