一篇文章带你了解Go语言基础之运算符和流程控制

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

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

java

web

数组

bash

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

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


前言

Hey,你们好呀,我是星期八,此次我们继续学习Go基础之运算符和流程控制叭。微信


运算符

运算符这个名字听着玄乎,其实咱们日常见的不少了,就像=,+,/之类的。app

运算符主要分为less

  • 算数运算符编辑器

  • 关系运算符ide

  • 逻辑运算符

  • 位运算符

  • 赋值运算符

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


算数运算符

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

简单了解如下叭。

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


关系运算符

运算符 描述
== 检查两个值是否相等,若是相等返回 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

语法

//方式一,一个ifif 条件{ //执行语句}//方式二,if条件不成功执行elseif 条件{ //if成功语句}else{ //if不成功语句}//方式三,带有else ifif 条件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-%v\n", i, j) } } //要跳转的标签breakTag: fmt.Println("结束for循环")
}


总结

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

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

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

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

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

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

本文分享自微信公众号 - Go语言进阶学习(gh_dced3d6523fb)。
若有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一块儿分享。

相关文章
相关标签/搜索