golang(4)流程控制

2021-10-24 03:28:52 字數 3642 閱讀 9465

1.順序控制

2.分支控制

3.迴圈控制

》單分支,雙分支,多分支

if 條件
編寫乙個程式,判斷輸入年齡是否大於18,如果大於輸出一句話

package main

import

"fmt"

func

main()

}

c:\users\g\go\src\awesomeproject>

go run 1.

go請輸入年齡

25

if 條件

else

判斷輸入年齡是否大於18,如果大於輸出一句話,小於輸出一句話

package main

import

"fmt"

func

main()

else

}

c:\users\g\go\src\awesomeproject>

go run 1.

go請輸入年齡

19你已經過了18歲

c:\users\g\go\src\awesomeproject>

go run 1.

go請輸入年齡

11你還小

雙分支中執行的時候只能執行其中乙個 執行了if就不會執行else

if 條件

else

if 條件

....

.else

在if中又巢狀乙個if

在巢狀分支中建議控制在三層內

switch 表示式
package main

import

"fmt"

func

main()

}

c:\users\g\go\src\awesomeproject>

go run 1.

go請輸入a-g任意字元a周一

c:\users\g\go\src\awesomeproject>

go run 1.

go請輸入a-g任意字元

b周二

for迴圈語法

for迴圈變臉初始化;迴圈條件;迴圈變數迭代
package main

import

"fmt"

func

main()

}

for迴圈的使用細節

1.迴圈條件返回為乙個布林值

2.for迴圈的第二種返回方式

for 迴圈判斷條件

//將變數初始化和變數迭**道其他位置

j :=

1for j <=

10

3.for的死迴圈

for

等價於

for ; ; {} 都是乙個無限迴圈 通常需要配合break

4.遍歷字串

1)

str :=

"hellow,world"

for i:=

0;i <

len(str)

; i++

2) for-range方法

str =

"qweasd-1"

for index,val :=

range str

3)while 和do … while的實現

go語言中沒有while迴圈,但是可以通過for實現效果

while

迴圈變數初始化

for

迴圈語句

迭代}

var i  int=1

for fmt.

println

("hello world"

) i++

}

4)do…while

迴圈變數初始化

for

}

1.將乙個迴圈放在另乙個迴圈體內,就形成了巢狀迴圈。外面得到for稱為外層迴圈裡面的for稱為內層迴圈。(一般不要超過三層)

2.巢狀迴圈就是把內層迴圈當成外層迴圈的迴圈體。當只有內層迴圈的迴圈條件為false時,才會完全跳出內層迴圈。才能節水外層的當此迴圈開始下次迴圈。

3.外層迴圈為m次,內層迴圈為n次,整個迴圈為m*n次

例:輸入幾個班學生的成績,分別算出每個班的平均分和全部的平均分

1.首先算平均分

sum :=

0.0//總分

for i :=

1; i <=

5; i++

fmt.

printf

("%v班級的平均分為%v \n"

,j, sum/5)

//算出平均分

2.多來幾個班

for j :=

1; j <=

3;j++

fmt.

printf

("%v班級的平均分為%v \n"

,j, sum/

float64

(stunum)

) totalsum += sum

} fmt.

printf

("所有班級的平均分為%v \n"

, totalsum/

float64

(stunum*classnum)

)}

隨機生成數字,直到生成99這個數字後停止

首先生成隨機數字

n := rand.

intn

(100)+

1//生成的本身是從0到99 想生成1-100需要加1

fmt.

println

(n)//輸出始終為82

下面需要再引入包time

rand.

seed

(time.

now().

unix()

)//返回2023年1月1日到現在的秒數

這樣隨機數才會變

package main

import

("fmt"

"math/rand"

"time"

)func

main()

} fmt.

printf

("生成99用了%d次"

,num)

}//生成99用了1478411次

unix的模組單位為秒 太慢 我們可以將時間改為納秒

rand.

seed

(time.

now().

unixnano()

)//生成99用了2033次

這樣就會快很多

golang 流程控制

toc golang提供了下面幾個關鍵字 if else for switch case fallthrough select break continue goto等,實現程式的分支控制,並且賦予它們不同的用法。在本節中我們會重點討論除了select的其他關鍵字,select會放在併發和通訊的時候...

Golang 流程控制

package main import fmt func main else if age 18 變數寫在條件中,不會對全域性有影響 if age2 18 age2 18else if age2 18 package main import fmt func main 忽略初始語句 需要提前宣告 i...

golang 流程控制

3.迴圈結構 1 無返回型別 2 有返回型別 流程控制 主要是三大流程控制流程控制語句 1 順序控制 2 分支控制 3 迴圈控制 程式從上到下逐行地執行,中間沒有任何判斷和跳轉。注意基本語法 if 條件表示式 條件表示式為true時,就會執行的 注意是必須有的,就算你值寫一行 golang支援在if...