我是靠谱客的博主 欣慰心情,这篇文章主要介绍golang-流程控制分支循环,现在分享给大家,希望可以做个参考。

[TOC]
golang提供了下面几个关键字:if/elseforswitch/case/fallthroughselectbreakcontinuegoto等,实现程序的分支控制,并且赋予它们不同的用法。在本节中我们会重点讨论除了select的其他关键字,select会放在并发和通信的时候提到。

分支

golang的分支语句的关键字为if/elseswitch/case/fallthroughselect后者会在并发和通信的时候提到。

  1. 一个if/else的语法如下:
复制代码
1
2
3
4
5
6
7
if optionalStatement1; booleanExep { blocks } else if optionalStatement2; booleanExep { blocks } else { blocks }

其中optionalStatement1是一个可选的表达式:

复制代码
1
2
3
4
5
6
7
8
if a := addSomething(); a { fmt.Println(a) } //上面的代码等价于下面 a := addSomething() if a { fmt.Println(a) }
  1. switch语句
    golang的switch语句相较于C/C++有几点不同:首先它的case语句支持任意可比较的类型、其次是case语句不会自动向下执行,最后switch支持数据类型表达式的用法。
    • case语句支持任何能够做等于比较的数据类型
      golang
      switch ext := getext(file); ext {
      case "jpg":
      fmt.Println("jpg file")
      case "png":
      fmt.Println("png file")
      default:
      fmt.Println("other file")
      }
    • case语句不会自动向下执行,如果需要向下执行,需要添加fallthrough
      golang
      switch ext := getext(file); ext {
      case "jpg":
      fallthrough
      case "png":
      fmt.Println("image file")
      default:
      fmt.Println("other file")
      }
    • switch支持数据类型表达式的用法
      golang
      switch x.(type) {
      case bool:
      fmt.Println("x is bool")
      case int:
      fmt.Println("x is int")
      default:
      fmt.Println("other file")
      }

循环

对于循环控制,golang仅提供了for语句,但是赋予了其更加灵活的用法,足以满足需求:

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
for { //无限循环 } for booleanExp { //条件循环,相当于while } for optionalStatement1; booleanExp { } for index, char := range aString { //迭代字符串 } for char := range aString { //迭代字符串 } for index, item := range anArrOrSlice { //迭代数组或切片 } for item := range anArrOrSlice { //迭代数组或切片 } for key, value := range anMap { //迭代字典 } for key := range anMap { //迭代字典 } for item := range Channels { //迭代通道 }

对于breakcontinuegoto,分别用于进行循环控制使用,满足一定条件跳出循环、结束本次循环以及跳转到指定位置。

最后

以上就是欣慰心情最近收集整理的关于golang-流程控制分支循环的全部内容,更多相关golang-流程控制分支循环内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(43)

评论列表共有 0 条评论

立即
投稿
返回
顶部