一篇文章带你了解 Go 语言基础之运算符和流程控制
前言
Hey,大家好呀,我是星期八,这次咱们继续学习Go基础之运算符和流程控制叭。
运算符
运算符这个名字听着玄乎,其实我们平常见的很多了,就像=,+,/之类的。
- 运算符主要分为
- 算数运算符
- 关系运算符
- 逻辑运算符
- 位运算符
- 赋值运算符
下面就来简单了解以下叭。
算数运算符
算数运算符顾名思义,主要用在算数中,加减乘除了啥的
简单了解以下叭。
关系运算符
运算符
描述
==
检查两个值是否相等,如果相等返回 True 否则返回 False
!=
检查两个值是否不相等,如果不相等返回 True 否则返回 False
>
检查左边值是否大于右边值,如果是返回 True 否则返回 False
>=
检查左边值是否大于等于右边值,如果是返回 True 否则返回 False
<
检查左边值是否小于右边值,如果是返回 True 否则返回 False
<=
检查左边值是否小于等于右边值,如果是返回 True 否则返回 False
逻辑运算符
注:逻辑运算符是很重要的,开发中经常用到。
位运算符
位运算符有些底层,特殊情况会用到
赋值运算符
赋值运算符在开发中用的也是比较多的。
流程控制
在Go中,流程控制有以下几种。
[SITESERVER_PAGE]- 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 case和if本质是一个东西,但是在某些场景,switch是比if更加简洁的。
[SITESERVER_PAGE]代码
- 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穿透的。
[SITESERVER_PAGE]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)
- }
- }
无限循环
谨慎执行!!!
[SITESERVER_PAGE]
- 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。
[SITESERVER_PAGE]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 ", i, j)
- }
- }
- //要跳转的标签
- breakTag:
- fmt.Println("结束for循环")
总结
上述我们学习了Go基础之运算符和流程控制。如果在操作过程中有任务问题,记得下面讨论区留言,我们看到会第一时间解决问题。
我是码农星期八,如果觉得还不错,记得动手点赞一下哈。感谢你的观看。
本文转载自微信公众号「Go语言进阶学习」,可以通过以下二维码关注。转载本文请联系Go语言进阶学习公众号。

