回覆「Go語言」便可獲贈Python從入門到進階共10本電子書javascript
上篇文章中咱們學習了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 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
更加簡潔的。
代碼
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源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。