Go语言基础运算符和流程控制有哪些特点和应用?

2026-04-01 03:451阅读0评论SEO教程
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计3004个文字,预计阅读时间需要13分钟。

Go语言基础运算符和流程控制有哪些特点和应用?

运算符听起来很神秘,其实我们平时见得很多,就像 +=、++、--、/ 等类的。运算符主要分为:算数运算符、关系运算符、逻辑运算符、位运算符、赋值运算符等。下面简单了解以下。

运算符

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

运算符主要分为

  • 算数运算符

  • 关系运算符

  • 逻辑运算符

  • 位运算符

  • 赋值运算符

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

算数运算符

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

简单了解以下叭。

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:

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循环")

本文共计3004个文字,预计阅读时间需要13分钟。

Go语言基础运算符和流程控制有哪些特点和应用?

运算符听起来很神秘,其实我们平时见得很多,就像 +=、++、--、/ 等类的。运算符主要分为:算数运算符、关系运算符、逻辑运算符、位运算符、赋值运算符等。下面简单了解以下。

运算符

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

运算符主要分为

  • 算数运算符

  • 关系运算符

  • 逻辑运算符

  • 位运算符

  • 赋值运算符

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

算数运算符

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

简单了解以下叭。

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:

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循环")