一、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...