Go语言流程控制语句
1.条件语句
几个注意点和C#不一样的。
if a < 5 { return 0 } else { return 1 }
① 条件语句不需要使用括号将条件包含起来 a<5 ,C#必须有()
②无论语句体内有几条语句,花括号{}都是必须存在的;C#如果只有一条语句可以省略{}
③左花括号{必须与if或者else处于同一行 C#的{}是换行的
④在有返回值的函数中,不允许将“最终的”return语句包含在if...else...结构中,
否则会编译失败(这句话错误的 1.1版Go语言和之后的新版已经支持if else条件语句直接return返回值。),所以上面的demo是可以编译通过的。
2.选择语句
①条件表达式不限制为常量或者整数
②单个case中,可以出现多个结果选项
③Go语言不需要用break来明确退出一个case;C#需要在每一个case结束之后加上break
④增加了fallthrough方法 主要用于多个相同case合并,Go就相当于默认加了break;
和C#正好相反
switch i { case 0: fmt.Printf("0") case 1: fmt.Printf("1") case 2: fallthrough case 3: fmt.Printf("3") case 4, 5, 6: fmt.Printf("4, 5, 6") default: fmt.Printf("Default") }
如上例子,case 2中有语句fallthrough,那么当i=2时候,执行完fallthrough会执行case3,由此打印出了“3”
⑤可以不设定switch之后的条件表达式,在此种情况下,整个switch结构与多个if...else... 的逻辑作用等同。如下代码
switch { case 0 <= Num && Num <= 3: fmt.Printf("0-3") case 4 <= Num && Num <= 6: fmt.Printf("4-6") case 7 <= Num && Num <= 9: fmt.Printf("7-9") }
3.循环语句
Go语言中的循环语句只支持for关键字,而不支持while和do-while结构。
①for后面的条件表达式不需要用圆括号()包含起来
模拟while语句:直接用for后面不加条件
sum := 0 for { sum++ if sum > 100 { break } }
②for循环中条件表达式中也支持多重赋值
a := []int{1, 2, 3, 4, 5, 6} for i, j := 0, len(a) – 1; i < j; i, j = i + 1, j – 1 { a[i], a[j] = a[j], a[i] }
如上代码:
a) 初始值 i=0 ,j= len(a) – 1
b)循环的条件是 i < j
c)每执行一次 i+1 ,j-1
循环体: a[i], a[j] = a[j], a[i]
Go语言中的for循环与C语言一样,都允许在循环条件中定义和初始化变量,唯一的区别是,Go语言不支持以逗号为间隔的多个赋值语句,必须使用平行赋值的方式来初始化多个变量。
③Go语言的for循环同样支持continue和break来控制循环,但是它提供了一个更高级的break,可以选择中断哪一个循环, 如下代码:
break语句终止的是JLoop标签处的外层循环
for j := 0; j < 5; j++ { for i := 0; i < 10; i++ { if i > 5 { break JLoop } fmt.Println(i) } } JLoop: //Do Something
如果是C#,只能跳出第一层循环,而不能直接跳出第二层循环,这也是区别的地方之一
4.跳转语句
Go语言支持goto语句
func myfunc() { i := 0 HERE: fmt.Println(i) i++ if i < 10 { goto HERE } }
for…range 是什么,就相当于原来的foreach中迭代 k,v结构。
for index, value := range mySlice { fmt.Println("index: " + index) fmt.Println("value: " + value) }
当迭代切片时,关键字range 会返回两个值。第一个值是当前迭代到的索引位置,第二个
值是该位置对应元素值的一份副本
这张图比较好的说明了range的返回值,重点在于值是副本
到此这篇关于Go语言流程控制语句的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持猪先飞。
原文出处:https://www.cnblogs.com/dcz2015/p/10096157.html
相关文章
- 这篇文章主要为大家详细介绍了C语言实现放烟花的程序,有音乐播放,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-02-23
- 本篇文章主要介绍C语言中char的知识,并附有代码实例,以便大家在学习的时候更好的理解,有需要的可以看一下...2020-04-25
- 在程序员中,尤其是go新手,经常听到的一个讨论话题是:如何处理错误,这篇文章主要给大家介绍了关于Go应用中优雅处理Error的一些相关技巧,需要的朋友可以参考下...2021-09-08
- 这篇文章主要介绍了R语言作图:坐标轴的设置方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-05-06
- 这篇文章主要介绍了R语言删除指定变量或对象的操作方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-05-06
- 这篇文章主要介绍了详解如何将c语言文件打包成exe可执行程序,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-02-25
- 这篇文章主要介绍了Go语言压缩和解压缩tar.gz文件的方法,实例分析了使用Go语言压缩文件与解压文件的技巧,具有一定参考借鉴价值,需要的朋友可以参考下...2020-05-03
- 这篇文章主要介绍了R语言基本画图函数与多图多线的用法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-05-06
Django def clean()函数对表单中的数据进行验证操作
这篇文章主要介绍了Django def clean()函数对表单中的数据进行验证操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-07-09- free函数是释放之前某一次malloc函数申请的空间,而且只是释放空间,并不改变指针的值。下面我们就来详细探讨下...2020-04-25
详解C语言中的rename()函数和remove()函数的使用方法
这篇文章主要介绍了详解C语言中的rename()函数和remove()函数的使用方法,是C语言入门学习中的基础知识,需要的朋友可以参考下...2020-04-25- 这篇文章主要介绍了C语言中计算正弦的相关函数总结,包括正弦和双曲线正弦以及反正弦的函数,需要的朋友可以参考下...2020-04-25
- 这篇文章主要介绍了C语言中求和、计算平均值、方差和标准差的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-12-10
- 这篇文章主要介绍了R语言-将list转换为向量的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-05-06
- 这篇文章主要介绍了R语言-切换科学计数法和更换小数点位数的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-05-06
- 这篇文章主要介绍了R语言创建矩阵的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-05-06
- 本篇文章主要讲解C语言 基本语法,这里提供简单的示例和代码来详细讲解C语言的基本语法,开始学习C语言的朋友可以看一下,希望能够给你带来帮助...2021-09-18
- 这篇文章主要介绍了C语言中send()函数和sendto()函数的使用方法,是C语言入门学习中的基础知识,需要的朋友可以参考下...2020-04-25
- 在本篇文章里小编给大家分享了一篇关于R语言运算符知识点讲解内容,有兴趣的朋友们可以参考下。...2021-05-06
- Python 中的条件控制和循环语句都非常简单,也非常容易理解,与其他编程语言类似,下面这篇文章主要给大家介绍了关于python小白练习题之条件控制与循环控制的相关资料,需要的朋友可以参考下...2021-10-09