一篇文章带你了解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 mainfor range
import "fmt"
func main() {for{fmt.Println("666")}}
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可以通过标签在代码间无条件跳转,这就造成了一个局面,如果使用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-------------------
欢迎大家点赞,转发,转载,感谢大家的相伴与支持
想加入学习群请在后台回复【入群】
万水千山总是情,点个【在看】行不行
关键词:
责任编辑:宋璟
-
一篇文章带你了解Go语言基础之运算符和流程控制
-
可爱系的表情包《二百五十期》
-
一分钟跳绳225个!松江企业在上海国际健身展上办起了挑战赛
-
墨玉守护神能佩戴吗
-
加快打造石油工程“六个高地”
-
让困境少年筑梦远航 启东交付26间梦想小屋
-
双环传动8月1日盘中涨幅达5%
-
抢逼围!每球必争!中国女足今晚迎来“决战”
-
国际乒联最新世界排名,国乒三项稳居榜首
-
遇暴雨洪水如何自救?这份指南请仔细看
-
为什么紫罗兰手镯是白的
-
发行是什么意思
-
声母表23个正确写法图片可打印 声母表23个声母表
-
暴雨中,他们坚守在一线——京津冀防汛现场见闻
-
竞赛对大学有什么用(大学竞赛的重要性)
-
不属于网络操作系统的基本功能 操作系统的基本功能
-
美式足球一场比赛多长时间(一美式足球比赛多长时间)
-
追光·暖新闻丨爱心企业接力送水!广安果丰社区这个暑假有点“火”
-
奇德新材:拟出资800万美元设泰国子公司
-
刘维成功找回微信聊天记录,感谢微信团队,分享恢复教程
-
经国务院、中央军委批准:实施出口管制!
-
鑫众科技拟以1.03万收购辽宁新兴佳持有的定边县新兴佳100%股权
-
吉利gse电动车怎么样及新款标致4008多少钱
-
天邦食品:公司致力于通过技术创新增加产业链价值,生猪养殖和食品加工为公司的两大业务板块
-
青春身影,闪耀大运赛场内外
-
强降雨导致的K396次、Z180次列车受阻旅客已安全转移
-
如何在 macOS Sonoma 中设置 Center Stage
-
7月31日华远地产涨停分析:北京城市规划,房地产概念热股
-
金麒麟(603586)7月31日主力资金净买入503.37万元
-
g1227高铁途经站点(g1227)
-
怀柔发布3处积水断路点位 新增2条管控路段
-
每日大宗商品十大要闻速递(2023年7月31日)
-
镇远涌溪乡:辣椒迎丰收 订单收购解民忧
-
逾百亿外资项目落地受阻?海口官方通报
-
“洪磁线”“凤磁线”观光轮渡今起恢复正常运营