返回顶部
首页 > 资讯 > 精选 >Go语言运算符与控制结构实例代码分析
  • 951
分享到

Go语言运算符与控制结构实例代码分析

2023-07-05 07:07:38 951人浏览 八月长安
摘要

这篇文章主要讲解了“Go语言运算符与控制结构实例代码分析”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Go语言运算符与控制结构实例代码分析”吧!运算符运算符的作用是将操作数组合成表达式,比如

这篇文章主要讲解了“Go语言运算符与控制结构实例代码分析”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Go语言运算符与控制结构实例代码分析”吧!

    运算符

    运算符的作用是将操作数组合成表达式,比如下面的代码中,我们通过赋值和加号组成了两个表达式:

    var i,j = 1,2n := i + j

    Go的运算符大体分为六种:算术运算符、关系运算符、逻辑运算符、位运算符、赋值运算符和指针运算符。

    算术运算符

    运算符含义
    +加号,除了用于整数,浮点数,复数外,还可以用于字符串的拼接
    -减号
    *相乘
    /相除
    %求余,只能用于整数
    ++自增
    --自减
    +正数,注意与加号(+)的区别
    -负数,注意与减号(-)的区别

    用法示例:

    var str1 string = "hello"var str2 string = "world"str := str1 + str2 //使用+号拼接字符串i := 3.2 % 2 //报错,只能对整数求余var n int = 1n++ ++n //错误,自增只能加了操作数后面,自减也是同样的

    关系运算符

    通过逻辑运算符组成的表达式,其计算结果为布尔值,一般用于控制结构的条件部分:

    运算符含义
    ==相等
    !=不相等
    <=小于或等于
    <小于
    >=大于或等于

    用法示例:

    if 2 == (1 + 1) {fmt.Println("相等")}

    逻辑运算符

    逻辑运算符组成的表达式,其计算结果也同样蝇布尔值,因此也用于控制结构的条件部分:

    运算符含义
    &&逻辑与
    ||逻辑或
    !逻辑非,一元运算符,具有较高的优先级

    位运算符

    位运算符只能用于整数

    运算符含义
    &按位与,两个操作数都1的位置为1,否为0
    |按位或,两个操作数只要有1的位置,都为1,否则为0
    按位异或,两个操作数都相同为0,否则为1
    <<按位左移
    >>按位右移
    &^按位清空,根据右边操作数为1的位置,将左边对应位置设为0。

    用法示例:

    fmt.Println(2 & 1) // 00000010 & 00000001,可以看出,没有哪个位置两个操作都为1,因此结果为:00000000fmt.Println(2 | 1) // 00000010 & 00000001,结果为00000011,也就是3fmt.Println(2 ^ 1) // 00000010 & 00000001,结果为00000011,也就是3fmt.Println(1 << 1) //00000001 => 00000010 fmt.Println(2 >> 1) //00000010 => 00000001fmt.Println(23 &^ 5) 00010111 &^ 00000101 => 00010010

    赋值运算符

    运算符含义
    = :=赋值
    +=先将左侧与右侧的操作数相加,再赋值给左边的变量
    -=先将左侧与右侧的操作数相减,再赋值给左边的变量
    *=先将左侧与右侧的操作数相乘,再赋值给左边的变量
    /=先将左侧与右侧的操作数相除,再赋值给左边的变量
    %=先将左侧与右侧的操作数求余,再赋值给左边的变量
    <<=先将左侧的操作数按右侧的操作数向左位移,再将位移结果赋给左边的变量
    >>=先将左侧的操作数按右侧的操作数向右位移,再将位移结果赋给左边的变量
    &=先将左侧与右侧的操作数进行按位与计算,再将计算结果赋给左边的变量
    !=先将左侧与右侧的操作数进行按位或计算,再将计算结果赋给左边的变量
    ^=先将左侧与右侧的操作数进行按异或计算,再将计算结果赋给左边的变量

    指针运算符

    运算符含义
    &获取变量在内存中的地址
    *声明指针变量

    运算符的优先级

    Go的++与--运算符作用于操作数时形成的是表达式,因此不纳入运算符的优先级中。

    在Go语言中,一元运算符具有更高的优先级,如+(正数), -(负数),!(取反),*(指针声明), &(取址)。

    而赋值运算符的优先级最低,除了一元运算符以及赋值运算符外,剩下的运算符可以划分为五个优先等级:

    优先级运算符
    5* / % << >> & &^
    4+ - | ^
    3== != < <= >= >
    2&&
    1||

    控制结构

    Go的控制结构包括if语句、for语句和switch语句三种。

    If

    if语句用于判断某个条件是否满足,如果满足,则执行if语句中的代码块,如果不满足,则忽略if语句中的代码块并继续向后执行。

    最简单的if语句结构为:

    if boolean expression {// do something}

    其中boolean expression为一个可以得到布尔值的表达式,当布尔值为true,会执行if语句中的代码块,如:

    if 2 < 10 {fmt.Println("ok")}

    除了用于判断的boolean expression外,if也可以包含一个初始化表达式:

    if initialization;boolean expression{// do something}

    这种情况下,if会先执行初始化表达式,之后再判断boolean expression得到的布尔是否为true

    if i = 10;i < 100 {fmt.Println("ok")}

    if语句后面也可以跟上else语句,当然if条件不满足时,会执行else语句中的代码块:

    if boolean expression{// do something}else{// do something}

    用法示例:

    if i = 11;i < 11{fmt.Println("ok")}else{fmt.Println("bad")}

    如果有多个分支条件判断,可以在if语句后面跟上多个else if 语句,最后可以跟上else语句,当所有条件都不满足时,会执行else语句中的代码块:

    if boolean expression1 {// do something} else if boolean expression2 {// do something else} else if boolean expression3 {// do something else}else {// catch-all or default}

    For

    for语句用于根据条件循环执行其中的代码块,最简单的for语句格式如下:

    for condition {//do something}

    condition为一个可得到布尔值的表达式,Go语言中并没有while或者do-while语句,因此这种方式的用法接近其他编程语言while或者do-while语句:

    x := 1for x < 20{fmt.Println(x)x++}

    如果condition为空,那么此时for则为死循环:

    for {//do something}

    for最经典,在其他编程语言也有的用法是下面这种形式:

    for init statement;condition;post statement{//do something}

    用法示例:

    for i := 0; i< 10 ;i++ {fmt.Println(i)}

    另外,for语句还与关键字range配合,可以用于遍历数组、map和切片等,其作用类似PHP中的foreach语句:

    for k,v := range array {//do something}

    用法示例:

    var a [10]int = [10]int{1,2,3,4,5,6,7,8,9,10}for index,value := range a {fmt.Println(index,value)}

    使用break关键字结束循环

    for i := 0; i < 10; i++ {if i == 5 {break}fmt.Println(i)}

    使用continue结束跳过单次循环:

    for i := 0;i<10;i++{if i == 5 {continue}fmt.Println(i)}

    Switch

    Switch与if类似,用于根据条件执行满足条件的代码块,但其用法与if不同,switch有几种不同的用法:

    第一种使用方法会将switch后面的值与case后面所跟的值进行比较,满足条件则执行case中的代码块,如果都不满足,则执行default中的代码块,其结构如下所示:

    switch var1 {case val1:...case val2:...default:...}

    用法示例:

    var x = 8switch x {case 8 :fmt.Println("8")case 9 :  fmt.Println("9")case 10 :  fmt.Println("10")default :fmt.Println("not found")}

    从上面的例子可以看出,在满足某个条件后,switch执行完该分支就会退出switch语句,不需要像其他编程语言一样使用break来退出switch语句。

    如果不想退出switch语句,需要继续让switch语句往下执行,可以在case语句内使用fallthrough关键词:

    var x = 8switch x {case 8 :fmt.Println("8")fallthroughcase 9 :  fmt.Println("9")  fallthroughcase 10 :  fmt.Println("10")default :fmt.Println("not found")}

    上面语句在匹配到case 8:之后,碰到了fallthrough语句,所以继续往下执行,接着继续碰到fallthrough语句,再继续执行,因此三个case代码块都会被执行。

    switch的另一种用法是将后面的变量省略,而把执行的判断条件放在case关键词后面,这个用法与if/elseif语句类似:

    switch {case condition1:...case condition2:...default:...}

    用法示例:

    x := 10switch {case x >= 10:fmt.Println("10")case x > 11:fmt.Println("11")default:fmt.Println("not found")}

    switch后面可以跟上一个初始化语句:

    switch initialization {case condition1:...case condition2:...default:...}

    用法示例:

    switch x := 10; {case x >= 10:fmt.Println("10")case x > 11:fmt.Println("11")default:fmt.Println("not found")}

    type-switchswitch语句的另一种用法,主要用于类型断言。

    感谢各位的阅读,以上就是“Go语言运算符与控制结构实例代码分析”的内容了,经过本文的学习后,相信大家对Go语言运算符与控制结构实例代码分析这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

    --结束END--

    本文标题: Go语言运算符与控制结构实例代码分析

    本文链接: https://lsjlt.com/news/350302.html(转载时请注明来源链接)

    有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

    猜你喜欢
    • Go语言运算符与控制结构实例代码分析
      这篇文章主要讲解了“Go语言运算符与控制结构实例代码分析”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Go语言运算符与控制结构实例代码分析”吧!运算符运算符的作用是将操作数组合成表达式,比如...
      99+
      2023-07-05
    • 重学Go语言之运算符与控制结构详解
      目录运算符算术运算符关系运算符逻辑运算符位运算符赋值运算符指针运算符运算符的优先级控制结构IfForSwitch小结运算符 运算符的作用是将操作数组合成表达式,比如下面的代码中,我们...
      99+
      2023-02-28
      Go语言 运算符 控制结构 Go语言 运算符 Go语言 控制结构 Go 运算符 Go 控制结构
    • Go 语言结构实例分析
      当前的调试部分可以使用 go run filename.go 来执行。 可以生成一个 build.sh 脚本,用于在指定位置产生已编译好的 可执文件: #!/usr/bin/en...
      99+
      2024-04-02
    • C语言运算符与表达式实例分析
      本篇内容主要讲解“C语言运算符与表达式实例分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C语言运算符与表达式实例分析”吧!表达式函 数 概 述表达式是C语言的主体。在C语言中,表达式由操作符...
      99+
      2023-07-02
    • JavaScript运算符与表达式实例代码分析
      本篇内容主要讲解“JavaScript运算符与表达式实例代码分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“JavaScript运算符与表达式实例代码分析”吧!一、===严格相等运算符,用作逻...
      99+
      2023-07-06
    • Go语言结构的示例分析
      这篇文章主要为大家展示了“Go语言结构的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Go语言结构的示例分析”这篇文章吧。当前的调试部分可以使用 go run filename.go 来...
      99+
      2023-06-20
    • Python海象运算符实例代码分析
      本篇内容主要讲解“Python海象运算符实例代码分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python海象运算符实例代码分析”吧!在判断条件下允许操作。在一定程度上简化了代码,但降低了可...
      99+
      2023-07-04
    • Python中的变量、运算符与流程控制实例分析
      本篇内容主要讲解“Python中的变量、运算符与流程控制实例分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python中的变量、运算符与流程控制实例分析”吧!一、执行Python程序的两种方...
      99+
      2023-06-30
    • C语言运算符的重载实例分析
      本篇内容介绍了“C语言运算符的重载实例分析”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!写一个Add函数我们先讨论下面代码,并复习前面的内容...
      99+
      2023-06-26
    • C语言结构体实例分析
      这篇文章主要介绍“C语言结构体实例分析”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“C语言结构体实例分析”文章能帮助大家解决问题。1. 动态内存管理C语言代码----->编译----->...
      99+
      2023-06-29
    • Go语言流程控制的示例分析
      这篇文章给大家分享的是有关Go语言流程控制的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1、流程控制流程控制在编程语言中是最伟大的发明了,因为有了它,你可以通过很简单的流程描述来表达很复杂的逻辑。流程控...
      99+
      2023-06-29
    • C语言指针运算实例分析
      这篇文章主要介绍“C语言指针运算实例分析”,在日常操作中,相信很多人在C语言指针运算实例分析问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C语言指针运算实例分析”的疑惑有所帮助!接下来,请跟着小编一起来学习吧...
      99+
      2023-06-30
    • C语言分支与循环实例代码分析
      这篇文章主要介绍“C语言分支与循环实例代码分析”,在日常操作中,相信很多人在C语言分支与循环实例代码分析问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C语言分支与循环实例代码...
      99+
      2024-04-02
    • Java的位运算实例代码分析
      今天小编给大家分享一下Java的位运算实例代码分析的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。位运算很久以前学习过位运算,...
      99+
      2023-07-06
    • Rust结构体的定义与实例化代码分析
      这篇文章主要介绍“Rust结构体的定义与实例化代码分析”,在日常操作中,相信很多人在Rust结构体的定义与实例化代码分析问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Rust结构体的定义与实例化代码分析”的疑...
      99+
      2023-07-04
    • c语言中移位运算符的示例分析
      这篇文章主要介绍c语言中移位运算符的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!C语言是什么C语言是一门面向过程的、抽象化的通用程序设计语言,广泛应用于底层开发,使用C语言可以以简易的方式编译、处理低级存储...
      99+
      2023-06-15
    • C语言结构体应用实例分析
      这篇文章主要介绍“C语言结构体应用实例分析”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“C语言结构体应用实例分析”文章能帮助大家解决问题。1、结构体的声明1.1 结构的基础知识结构是一些值的集合,这...
      99+
      2023-06-30
    • Go语言基础数据类型实例代码分析
      这篇文章主要讲解了“Go语言基础数据类型实例代码分析”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Go语言基础数据类型实例代码分析”吧!布尔型布尔型是Go最简单的数据类型,因为布尔型只有两个...
      99+
      2023-07-05
    • css3单词与语法结构实例分析
      这篇文章主要介绍了css3单词与语法结构实例分析的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇css3单词与语法结构实例分析文章都会有所收获,下面我们一起来看看吧。一、css3...
      99+
      2024-04-02
    • C语言数据结构与算法时间空间复杂度实例分析
      这篇文章主要介绍“C语言数据结构与算法时间空间复杂度实例分析”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“C语言数据结构与算法时间空间复杂度实例分析”文章能帮助大家解决问题。时间复杂度来看第一个:l...
      99+
      2023-06-29
    软考高级职称资格查询
    编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
    • 官方手机版

    • 微信公众号

    • 商务合作