GO語言學習三(流程控制語句)

2021-08-09 17:50:47 字數 2313 閱讀 2305

一、for迴圈

go 只有一種迴圈結構——for迴圈

for迴圈包含三個由分號分開的組成部分:

初始化語句 : 第一次迴圈執行前被執行     可選

迴圈條件表示式 : 每次迭代開始前被求值:false or true  必須

後置語句:每次迭代後執行   可選

樣例一 常用迴圈:

package main

import "fmt"

func main()

fmt.println(sum)

}

樣例二 只保留迴圈條件表示式:

package main

import "fmt"

func main()

fmt.println(sum)

}

樣例三 死迴圈:

package main

func main()

}

demo :

package main

import "fmt"

func main()

} if j > (i / j)

} //字串反轉

str := "hello world"

arr := rune(str)

for i,j := 0,len(arr)-1;i

二、if

條件表示式

可以在條件之前執行乙個簡單語句,這個語句定義的變數的作用域僅在if範圍之內

樣例:package main

import (

"fmt"

"math"

)func main()

fmt.printf("a 的值為 : %d\n", a)

fmt.println(pow(2, 3, 10))

fmt.println(pow(3, 3, 20))

}func pow(x, n, lim float64) float64 else

//這個地方就無法使用if中定義的變數v

return lim

}

demo:利用牛頓法 計算平方根   

/**

練習:迴圈和函式

作為練習函式和迴圈的簡單途徑,用牛頓法實現開方函式

*/package main

import (

"fmt"

)func sqrt(x float64) float64

return z

}func main()

三、switch

switch 的條件從上到下的執行,當匹配成功的時候停止

沒有條件的 switch 同switch true一樣 相當於if-then-else

樣例一:

package main

import (

"fmt"

"runtime"

)func main()

switch

fmt.printf("你的等級是 %s\n", grade)

fmt.println(runtime.goos)

switch os := runtime.goos; os

}

樣例二:

package main

import (

"fmt"

"time"

)func main()

//switch 自上而下執行,當匹配成功的時候停止

switch i := x.(type)

fmt.println("when's saturday?")

today := time.now().weekday()

switch time.saturday

//沒有條件的switch 相當於if-then-else鏈

t := time.now()

switch

}

四、defer延時 

defer 語句會延遲函式的執行直到上層函式返回

延遲呼叫的引數會立刻生成,但是在上層函式返回前函式都不會被呼叫

延遲的函式呼叫被壓入乙個棧中。當函式返回時, 會按照後進先出的順序呼叫被延遲的函式呼叫

樣例:

package main

import "fmt"

func main()

go語言(三)流程控制,函式

一 if語句 if 語句沒有圓括號,而必需要有花括號跟條件和 else在同一行 例 if myvar 1 else if的條件中可以新增一句初始化語句,用 分隔 if c 1 myvar 1 此變數c的作用域是在後面的 內的。外面是不可見,同時如果不在後面使用也是會編譯錯誤的。二 switch語句 ...

三 流程控制語句

通過流程控制語句,可以改變程式的執行順序,也可以讓指定的程式反覆執行多次。分類 if 條件表示式 語句if 條件表示式 塊if else語句 if 條件表示式 塊else 塊 if elif else語句 if 條件表示式 塊elif 條件表示式 塊elif 條件表示式 塊else 塊 塊 塊中儲存...

Java學習(三) 流程控制語句

直接用 來講解一下迴圈控制語句更加容易理解 public class demotest private static void demo1 system.out.println i system.out.println 跳出for迴圈外 方法內輸出 private static void demo2...