首頁 > 後端開發 > Golang > 一篇文章帶你了解Go語言基礎運算子和流程控制

一篇文章帶你了解Go語言基礎運算子和流程控制

發布: 2023-07-20 14:42:59
轉載
625 人瀏覽過
這次咱們繼續學習Go基礎之運算子和流程控制。

運算子

運算子這個名字聽著玄乎,其實我們平常見的很多了,就像 =, #,/#之類的。

運算子主要分為

  • #算數運算子

  • 關係運算子

  • #邏輯運算子

  • #邏輯運算子

##位元運算子


賦值運算子##################下面就來簡單了解以下о。 ################

算數運算子

算數運算子顧名思義,主要用在算數中,加減乘除了啥的

#簡單了解以下 Ranger。

##---
運算子
#已減
######### ###########*################################################################################# ######/###### 相除
% 求餘
#自加
#########自減## ##################


#

關係運算子


邏輯運算子

#運算子 描述
== 檢查兩個值是否相等,如果相等回傳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
    標準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:
        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語言基礎運算子和流程控制的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:Go语言进阶学习
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板