目錄
運算子" >運算子
算數運算子" >算數運算子
關係運算子" >關係運算子
邏輯運算子" >邏輯運算子
位元運算子" >位元運算子
賦值運算子" >賦值運算子
流程控制" >流程控制
switch case
" >switch case
for
" >for
标准for循环" >标准for循环
无限循环
" >无限循环
for range
" >for range
goto" >goto
首頁 後端開發 Golang 一篇文章帶你了解Go語言基礎運算子和流程控制

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

Jul 20, 2023 pm 02:38 PM
go語言

這次咱們繼續學習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中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.聊天命令以及如何使用它們
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

Go語言中用於浮點數運算的庫有哪些? Go語言中用於浮點數運算的庫有哪些? Apr 02, 2025 pm 02:06 PM

Go語言中用於浮點數運算的庫介紹在Go語言(也稱為Golang)中,進行浮點數的加減乘除運算時,如何確保精度是�...

Go的爬蟲Colly中Queue線程的問題是什麼? Go的爬蟲Colly中Queue線程的問題是什麼? Apr 02, 2025 pm 02:09 PM

Go爬蟲Colly中的Queue線程問題探討在使用Go語言的Colly爬蟲庫時,開發者常常會遇到關於線程和請求隊列的問題。 �...

在 Go 語言中,為什麼使用 Println 和 string() 函數打印字符串會出現不同的效果? 在 Go 語言中,為什麼使用 Println 和 string() 函數打印字符串會出現不同的效果? Apr 02, 2025 pm 02:03 PM

Go語言中字符串打印的區別:使用Println與string()函數的效果差異在Go...

GoLand中自定義結構體標籤不顯示怎麼辦? GoLand中自定義結構體標籤不顯示怎麼辦? Apr 02, 2025 pm 05:09 PM

GoLand中自定義結構體標籤不顯示怎麼辦?在使用GoLand進行Go語言開發時,很多開發者會遇到自定義結構體標籤在�...

在Go語言中使用Redis Stream實現消息隊列時,如何解決user_id類型轉換問題? 在Go語言中使用Redis Stream實現消息隊列時,如何解決user_id類型轉換問題? Apr 02, 2025 pm 04:54 PM

Go語言中使用RedisStream實現消息隊列時類型轉換問題在使用Go語言與Redis...

Go語言中哪些庫是由大公司開發或知名的開源項目提供的? Go語言中哪些庫是由大公司開發或知名的開源項目提供的? Apr 02, 2025 pm 04:12 PM

Go語言中哪些庫是大公司開發或知名開源項目?在使用Go語言進行編程時,開發者常常會遇到一些常見的需求,�...

Go語言中`var`和`type`關鍵字定義結構體的區別是什麼? Go語言中`var`和`type`關鍵字定義結構體的區別是什麼? Apr 02, 2025 pm 12:57 PM

Go語言中結構體定義的兩種方式:var與type關鍵字的差異Go語言在定義結構體時,經常會看到兩種不同的寫法:一�...

使用 sql.Open 時,DSN 傳空為什麼不報錯? 使用 sql.Open 時,DSN 傳空為什麼不報錯? Apr 02, 2025 pm 12:54 PM

使用sql.Open時,DSN傳空為什麼不報錯?在Go語言中,sql.Open...

See all articles