GO語言基礎教程 流程控制

2022-02-25 01:56:54 字數 2667 閱讀 9322

package main

import (

"fmt"

)func main()

fmt.println(x,y) //其次輸出2,2

}fmt.println(x,y) //最後輸出1,2

}

var a int

a=xx()

if a==1else if a==2else

通過上邊的程式碼不難發現其實go語言的if寫法和別的程式語言幾乎沒有差別,但是要注意一點,那就是條件語句不能出現小括號,還有就是左大括號必須要出現在判斷語句的尾部,不能寫到新的一行.就像上邊的這個demo就不能這樣寫:

var a int

a=xx()

if(a==1) //這是第乙個錯誤

注意一下這兩點就差不多了,除了上邊說的這個注意事項之外還有一點需要注意的地方,請看下邊的程式碼:

if a:=xx();a==1

fmt.println(a) //這是錯誤的,因為變數a屬於if的區域變數

在這個demo中變數a被放到了if同一行中,此時a就屬於這個if的區域變數

總結一下,在go語言中if在使用的時候要注意三點就足夠了,分別是:1.條件語句不能有小括號,2.左大括號必須要放到語句的結尾,3.其他語句可以放到提交語句的左側,此時若有給變數賦值,那麼這個變數的作用範圍被侷限在if內

接下來我們看一下go語言的switch用法,首先我們來看一下下邊的程式碼:

var a int

a=xx()

switch a

fmt.println("結束")

在上邊的這個demo中如果您仔細看的話您會發現go語言的switch用法和其他語言差異不大,但是每乙個case都沒有break,這是因為go語言預設情況下是不需要加break的,在上邊的例子中如果a的值等於1,那麼會輸出"1結束",看到沒有根本就不需要加入break就能自動跳出switch,那麼如果當a的值等於4的時候會輸出"45結束",這是因為fallthrough的緣故,fallthrough可以讓case能夠被穿越,初次之外go語言的switch還有一種更高階的用法,至少這種用法以前我沒有在其他語言中見過,這種用法讓switch可以當if用,看下邊的demo:

a:=xx()

switch

看上邊的例子,在switch後沒有了判斷語句,而判斷語句被拿到了case後邊,這就是我上邊所講的switch拿來當if用.

那麼我們來總結一下switch的注意事項吧:1.左大括號必須要和switch同一行,2.不需要使用break跳出case,3.如果需要穿透case就必須要加fallthrough,4.可以不加判斷語句把其當if來用.

最後我們說一下go語言的迴圈,在go語言中只有乙個for用來迴圈,其他語言中常見的white;do..while;do..loop;foreach;while等迴圈方式都沒了,這一系列亂七八糟的迴圈方式在go語言中只需要for就足夠了.接下來我們通過幾個demo來逐一講解for是怎麼做到這些的.看程式碼

for i:=0;i<10;i++

這是常見的一種用法了,除了不要加小括號和左大括號必須要出現在行尾之外,跟別的程式語言沒有任何差異,因此針對這種迴圈方式我就不再細說了.接下來我們看第二種用法:

i:=0

for ;i<10;i++

fmt.println("繼續輸出:",i)

在這個例子中變數i被拿到了for迴圈之外定義,所以在for上我就不需要在對其進行額外的定義動作了,只需要乙個分號就夠了,等到for迴圈結束之後我還可以輸出變數i的值,因為此時的變數不再專屬於for.再接著看

i:=0

for i<10

fmt.println("繼續輸出:",i)

在這個例子中第三個條件語句也沒了,被我拿到了for內部,所以我就可以把條件語句中的分號都給省略掉.是不是很有意思,其實這就已經能夠取代while了.或許您還感覺不過癮,那好接下來我們弄個更狠的

i:=0

for

fmt.println(i)

i++}

fmt.println("繼續輸出:",i)

看到沒,do..loop或do..while之類的都被取代了.用這種迴圈方式時要注意控制跳出迴圈,要不然的話弄個死迴圈就不好了.啥你不知道怎麼寫死迴圈?好吧

for

看到沒就是這麼簡單就死迴圈了.如果您不信您可以自己執行試試就知道效果了.最後就只剩下foreach寫法了,看下邊的例子

i:=string

for k,v:=range i

通過這段程式碼就能把陣列的鍵名和值給逐行輸出

接下來我們來總結一下go語言的for迴圈需要注意的事項:1.條件語句不能加小括號,左大括要和for在同一行,2.如果條件語句超過兩個,則分號不能省略

另外for迴圈會涉及到break和continue的用法,如有不懂的朋友可以自己上網搜一下,這個比較簡單在此我就不再贅述了.

還有就是go語言加了goto,說實話我很不建議大家用,在此順便一提,有興趣的朋友可以自己研究一下.

希望轉載文章的朋友能夠留乙個文章出處, 在此感激不盡!

剛成立了乙個qq群,有興趣討論go語言的朋友可以加入:195112

go語言 golang基礎 流程控制

1 流程控制 程式語言的流程控制語句,用於設定計算執行的次序,建立程式的邏輯結構。可以說,流程控制語句是整個程式的骨架。從根本上講,流程控制只是為了控制程式語句的執行順序,一般需要與各種條件配合,因此,在各種流程中,會加入條件判斷語句。流程控制語句一般起以下3個作用 go語言支援如下的幾種流程控制語...

Go語言 流程控制

if else分支判斷 if condition1 if condition1 else if condition1 else if condition2 else if condition3 else 練習 package main import fmt func main else 練習 寫乙個...

go基礎4 流程控制

所有語言的流程控制都是三個 順序執行 if else for 一 if else 分支結構 if 表示式1else if 表示式2 else func ifdemo1 score 65 if score 90 fmt.println a 1,2 if 條件特殊寫法 在 if表示式之前加乙個執行語句 ...