Go语言流程控制语句

 更新时间:2022年7月12日 16:13  点击:262 作者:奋斗的大橙子

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

[!--infotagslink--]

相关文章

  • C语言实现放烟花的程序

    这篇文章主要为大家详细介绍了C语言实现放烟花的程序,有音乐播放,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-02-23
  • C语言中的字符(char)详细讲解

    本篇文章主要介绍C语言中char的知识,并附有代码实例,以便大家在学习的时候更好的理解,有需要的可以看一下...2020-04-25
  • Go应用中优雅处理Error的技巧总结

    在程序员中,尤其是go新手,经常听到的一个讨论话题是:如何处理错误,这篇文章主要给大家介绍了关于Go应用中优雅处理Error的一些相关技巧,需要的朋友可以参考下...2021-09-08
  • R语言作图:坐标轴的设置方式

    这篇文章主要介绍了R语言作图:坐标轴的设置方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-05-06
  • R语言 如何删除指定变量或对象

    这篇文章主要介绍了R语言删除指定变量或对象的操作方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-05-06
  • 详解如何将c语言文件打包成exe可执行程序

    这篇文章主要介绍了详解如何将c语言文件打包成exe可执行程序,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-02-25
  • Go语言压缩和解压缩tar.gz文件的方法

    这篇文章主要介绍了Go语言压缩和解压缩tar.gz文件的方法,实例分析了使用Go语言压缩文件与解压文件的技巧,具有一定参考借鉴价值,需要的朋友可以参考下...2020-05-03
  • R语言基本画图函数与多图多线的用法

    这篇文章主要介绍了R语言基本画图函数与多图多线的用法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-05-06
  • Django def clean()函数对表单中的数据进行验证操作

    这篇文章主要介绍了Django def clean()函数对表单中的数据进行验证操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-07-09
  • C语言中free函数的使用详解

    free函数是释放之前某一次malloc函数申请的空间,而且只是释放空间,并不改变指针的值。下面我们就来详细探讨下...2020-04-25
  • 详解C语言中的rename()函数和remove()函数的使用方法

    这篇文章主要介绍了详解C语言中的rename()函数和remove()函数的使用方法,是C语言入门学习中的基础知识,需要的朋友可以参考下...2020-04-25
  • C语言中计算正弦的相关函数总结

    这篇文章主要介绍了C语言中计算正弦的相关函数总结,包括正弦和双曲线正弦以及反正弦的函数,需要的朋友可以参考下...2020-04-25
  • C语言中求和、计算平均值、方差和标准差的实例

    这篇文章主要介绍了C语言中求和、计算平均值、方差和标准差的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-12-10
  • R语言-如何将list转换为向量

    这篇文章主要介绍了R语言-将list转换为向量的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-05-06
  • R语言-如何切换科学计数法和更换小数点位数

    这篇文章主要介绍了R语言-切换科学计数法和更换小数点位数的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-05-06
  • R语言创建矩阵的实现方法

    这篇文章主要介绍了R语言创建矩阵的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-05-06
  • C语言的基本语法详解

    本篇文章主要讲解C语言 基本语法,这里提供简单的示例和代码来详细讲解C语言的基本语法,开始学习C语言的朋友可以看一下,希望能够给你带来帮助...2021-09-18
  • C语言中send()函数和sendto()函数的使用方法

    这篇文章主要介绍了C语言中send()函数和sendto()函数的使用方法,是C语言入门学习中的基础知识,需要的朋友可以参考下...2020-04-25
  • R语言运算符知识点讲解

    在本篇文章里小编给大家分享了一篇关于R语言运算符知识点讲解内容,有兴趣的朋友们可以参考下。...2021-05-06
  • python小白练习题之条件控制与循环控制

    Python 中的条件控制和循环语句都非常简单,也非常容易理解,与其他编程语言类似,下面这篇文章主要给大家介绍了关于python小白练习题之条件控制与循环控制的相关资料,需要的朋友可以参考下...2021-10-09