烽火社区

标题: 【跟汉云自学】从零学Golang(三):控制流 [打印本页]

作者: yige569    时间: 2016-3-30 08:59 PM
标题: 【跟汉云自学】从零学Golang(三):控制流

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

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

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

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

今天就是第三篇了。

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

if-else

例如:

[attach]29187[/attach]

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

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

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

如:

[attach]29188[/attach]


goto

这个的用法与C语言相似

 

for

for init; condition; post { }

for condition { }

for { }

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

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

第三种就是一个死循环

 

break

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

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

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

[attach]29189[/attach]


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

 

continue

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

 

range

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

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

 

switch

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

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

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

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

如:

[attach]29190[/attach]

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

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

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

如:

case 1,2,3,4,5:

C语言中要写成:

[attach]29191[/attach]

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

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

作业:

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






欢迎光临 烽火社区 (https://bbs.cnecport.com/) Powered by Discuz! X3.2