我是靠谱客的博主 怕孤单烧鹅,最近开发中收集的这篇文章主要介绍一篇文章带你了解Go语言基础之运算符和流程控制,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

点击上方“Go语言进阶学习”,进行关注

回复“Go语言”即可获赠Python从入门到进阶共10本电子书

其险也如此,嗟尔远道之人胡为乎来哉!

上篇文章中我们学习了Go语言基础中的变量,一篇文章带你了解Go语言基础之变量,这篇文章我们继续介绍Go语言基础知识,今天跟大家分享的是基础数据类型之运算符和流程控制,一起来学习下吧~

前言

Hey,大家好呀,我是星期八,这次咱们继续学习Go基础之运算符和流程控制叭。

运算符

运算符这个名字听着玄乎,其实我们平常见的很多了,就像=,+,/之类的。

运算符主要分为

  • 算数运算符

  • 关系运算符

  • 逻辑运算符

  • 位运算符

  • 赋值运算符

下面就来简单了解以下叭。

算数运算符

算数运算符顾名思义,主要用在算数中,加减乘除了啥的

简单了解以下叭。

运算符描述
+相加
-相减
*相乘
/相除
%求余
++自加
--自减


关系运算符

运算符描述
==检查两个值是否相等,如果相等返回 True 否则返回 False
!=检查两个值是否不相等,如果不相等返回 True 否则返回 False
>检查左边值是否大于右边值,如果是返回 True 否则返回 False
>=检查左边值是否大于等于右边值,如果是返回 True 否则返回 False
<检查左边值是否小于右边值,如果是返回 True 否则返回 False
<=检查左边值是否小于等于右边值,如果是返回 True 否则返回 False


逻辑运算符

运算符描述
&&逻辑 and 运算符。 如果两边的操作数都是 True,则为 True,否则为 False
||逻辑 or 运算符。 如果两边的操作数有一个 True,则为 True,否则为 False
!逻辑 NOT 运算符。 如果条件为 True,则为 False,否则为 True

注:逻辑运算符是很重要的,开发中经常用到。


位运算符

位运算符有些底层,特殊情况会用到

运算符描述
&参与运算的两数各对应的二进位相与。 (两位均为1才为1)
|参与运算的两数各对应的二进位相或。 (两位有一个为1就为1)
^参与运算的两数各对应的二进位相异或,当两对应的二进位相异时,结果为1。 (两位不一样则为1)
<<左移n位就是乘以2的n次方。 “a<<b”是把a的各二进位全部左移b位,高位丢弃,低位补0。
>>右移n位就是除以2的n次方。 “a>>b”是把a的各二进位全部右移b位。


赋值运算符

赋值运算符在开发中用的也是比较多的。

运算符描述
=简单的赋值运算符,将一个表达式的值赋给一个左值
+=相加后再赋值
-=相减后再赋值
*=相乘后再赋值
/=相除后再赋值
%=求余后再赋值
<<=左移后赋值
>>=右移后赋值
&=按位与后赋值
|=按位或后赋值
^=按位异或后赋值


流程控制

在Go中,流程控制有以下几种。

  • if

    • if

    • switch case

  • for

    • 标准for

    • forrange

  • goto(慎用)


if

语法

//方式一,一个if
if 条件{
    //执行语句
}
//方式二,if条件不成功执行else
if 条件{
    //if成功语句
}else{
    //if不成功语句
}
//方式三,带有else if得
if 条件1{
    //if成功语句
}else if 条件2{
    //if不成功,继续else if条件
}else{
    //上面都不成功,执行else
}

例子

package main


import "fmt"


func main() {
    var gender = "男"


    if gender == "男" {
        fmt.Println("男")
    } else if gender == "女" {
        fmt.Println("女")
    } else {
        fmt.Println("啥都不是???")
  }
}


switch case

switch caseif本质是一个东西,但是在某些场景,switch是比if更加简洁的。

代码

package main


import "fmt"


func main() {
    var week = 3
    switch week {
    case 1:
        fmt.Println("周一")
    case 2:
        fmt.Println("周二")
    case 3:
        fmt.Println("周三")
    case 4:
        fmt.Println("周四")
    case 5:
        fmt.Println("周五")
    case 6:
        fmt.Println("周六")
    case 7:
        fmt.Println("周日")
    default://如果上面都没执行,会执行default
        fmt.Println("星期八????")
  }
}

注:在Go中,switch是没有case穿透的。

Go的switch可以case多个值。

package main


import "fmt"


func main() {
    var week = 3
    switch week {
    case 1, 2, 3, 4, 5:
        fmt.Println("上班")
    case 6:
        fmt.Println("周六睡懒觉")
    case 7:
        fmt.Println("周日去旅游")
    default:
        fmt.Println("飞天了???")
  }
}


for

标准for循环

语法

for 初始条件;判断条件;结束条件{
    语句
}

代码

package main


import "fmt"


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

无限循环

谨慎执行!!!

package main


import "fmt"


func main() {
    for{
        fmt.Println("666")
  }
}

for range

for ragne可以很方便循环数组,切片,字符串,map,channel等。

遍历数组示例

package main


import "fmt"


func main() {
    var student_list = [...]string{"张三", "李四", "王五"}
    for index, v := range student_list {
        //index为下标,v是每一个的值
        fmt.Println(index, v)
  }
}

注:

如果数组,切片,字符串
  index是下标,v是值
如果是map
  index是键,v是对(值)
如果是通道
  只有一个值,就是通道内的值

补充:

在Go中,只有for循环,没有while。

for循环就两种方式。

goto

goto可以通过标签在代码间无条件跳转,这就造成了一个局面,如果使用gote过多,会造成逻辑混乱,跳来跳去。

所以,在开发中,要慎用,不到万不得已,不要使用。

示例

package main


import "fmt"


func main() {
  for i := 0; i < 10; i++ {
    for j := 0; j < 10; j++ {
      if j == 2 {
        // 直接跳转到下面的 breakTag 标签
        goto breakTag
      }
      fmt.Printf("%v-%vn", i, j)
    }
  }
  //要跳转的标签
breakTag:
  fmt.Println("结束for循环")
}

总结

上述我们学习了Go基础之运算符和流程控制。如果在操作过程中有任务问题,记得下面讨论区留言,我们看到会第一时间解决问题。

我是码农星期八,如果觉得还不错,记得动手点赞一下哈。感谢你的观看。

------------------- End -------------------

欢迎大家点赞转发,转载,感谢大家的相伴与支持

想加入学习群请在后台回复【入群

万水千山总是情,点个【在看】行不行

最后

以上就是怕孤单烧鹅为你收集整理的一篇文章带你了解Go语言基础之运算符和流程控制的全部内容,希望文章能够帮你解决一篇文章带你了解Go语言基础之运算符和流程控制所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

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

评论列表共有 0 条评论

立即
投稿
返回
顶部