一篇文章带你了解Go语言基础之运算符和流程控制
时间:2023-08-03 07:42:14来源:程序员客栈
点击上方“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<
>>右移n位就是除以2的n次方。 “a>>b”是把a的各二进位全部右移b位。

赋值运算符

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

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

流程控制

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

if

if

switch case

for

标准for

forrange

goto(慎用)


if

语法

//方式一,一个ifif 条件{//执行语句}//方式二,if条件不成功执行elseif 条件{//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 case和if本质是一个东西,但是在某些场景,switch是比if更加简洁的。

代码

package main
import "fmt"
func main() {var week = 3switch 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://如果上面都没执行,会执行defaultfmt.Println("星期八????")}}

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


Go的switch可以case多个值。

package main
import "fmt"
func main() {var week = 3switch 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是值如果是mapindex是键,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-%v\n", i, j)}}//要跳转的标签breakTag:fmt.Println("结束for循环")

}


总结

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

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

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

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

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

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


标签:

生活指南
  • 全资收购永辉?京东回应!

    8月1日,有自媒体发文称,京东近期正与永辉接洽收购事宜,双方进行了至

  • ​西平县芦庙乡召开平安建设宣传工作推进会_新要闻

    为进一步巩固和提升广大人民群众的安全感和执法满意度,提升人民群众对

  • 焦点速讯:vscode的用处是什么? vscode的主要功能有哪些?

    vscode的用处是什么?vscode是用来编写代码的软件,vscode全称Visual

  • 2024量产!传小米汽车开始筛选交付中心:建筑规模超3000㎡

    2024量产!传小米汽车开始筛选交付中心:建筑规模超3000㎡

  • 颗粒板和欧松板哪个好?衣柜用欧松板好还是颗粒板好? 全球时快讯

    颗粒板和欧松板哪个好?颗粒板和欧松板的区别介绍:1、原料欧松板:它

  • 速看:银行贷款利息是月息还是年息?定期存款可以提前取出来吗?

    银行贷款利息是月息还是年息?1、银行贷款利息有按年算的,也有按月

  • 当前看点!光大证券:预计下半年煤炭供需格局优于上半年,动力煤价格有望震荡走强

    7月5日消息,光大证券研报表示,在三峡出库流量并未明显好转的情况下,

  • 阿尔萨斯怎么死的?阿尔萨斯最后清醒了吗?

    阿尔萨斯怎么死的?巫妖王阿尔萨斯被剑中灵魂反噬而死。 巫妖王阿尔

  • 看热讯:[快讯]绝味食品2260万限售股7月7日解禁

    CFi CN讯:绝味食品(股票代码:603517)在2023年07月07日新增可售A股2

  • e招贷不上征信吗?招商银行e招贷上不上征信?-全球信息

    e招贷不上征信吗?e招贷是招商银行推出的贷款产品,招商银行是正规的

  • 环球资讯:杞菊地黄丸巧搭配,效果翻倍!1. 杞菊地黄W逍遥丸功效:滋补肝

    杞菊地黄丸巧搭配,效果翻倍!1 杞菊地黄W➕逍遥丸功效:滋补肝肾

  • 2023中级会计财务管理答疑精华:风险收益率 焦点快看

    2023年中级会计职称备考已经开始啦!为帮助大家备考,正保会计网校特从

  • 全球快讯:六安市叶集区:暖心助餐饭让老年生活有“知”有“味”

    “这里的饭软和,菜味道也好,不仅花样多,还好吃便宜,感谢政府对我们

  • 平谷区夏各庄镇举办土特产推介会

    本报讯(记者马超)胖嘟嘟的赤松茸,品种多样的红薯系列产品,鲜嫩多汁

  • 山东43人名单曝光,终生禁驾!

    近日,山东省公安厅交通管理局发布6月份重点交通违法企业、车辆及驾驶

  • 全球最大水光互补电站——柯拉光伏电站投产发电 黄强宣布电站投产发电

    6月25日上午,来自川西海拔4600米扎拉托桑雪山上的“阳光”,一路“跋

  • 民生
    • oppoa11多少钱(OPPO A11价格揭晓,抢购即刻开启)

    • 北京东城区将升级王府井街区 计划投入2.9亿元

    • iso9001质量管理体系包含哪些内容呢(iso9001质量管理体系包含哪些内容)

    • 蟑螂恶霸是什么动物?蟑螂恶霸为什么叫蟑螂恶霸?