Golang
來吧來吧~終於來到了迴圈的世界,先上菜看看for的表現是如何的?
For
package main
import "fmt"
func main() {
i := 1
for i <= 10 {
fmt.Println(i)
i++
}
for i := 1; i <= 10; i++ {
fmt.Println(i)
}
}
此時break返回也來湊熱鬧了,原來跟其他家的玩法雷同阿,加了break就可以從迴圈中離開囉!!
package main
import "fmt"
func main() {
for i := 1; i <= 10; i++ {
if 5 < i {
break
}
fmt.Println(i)
}
}
阿~如果返回都一樣,沒道理忽略此次迴圈的方式會不同吧!
package main
import "fmt"
func main() {
for i := 1; i <= 10; i++ {
if i%2 == 0 {
continue
}
fmt.Println(i)
}
}
另外來看一下特別的goto吧!!
goto (跳到同函式中某個位置)
備註:
Goto這個使用方式看起來是頗具爭議的,有些人認為使用goto會讓程式的結構變得複雜(因為他會直接跳離),但也有人主張適時的使用goto反而可以讓程式碼更簡潔,這部分就見仁見智囉!
package main
import "fmt"
func main() {
a := 10
LOOP: for a < 20 {
if a == 15 {
a = a + 1
goto LOOP
}
fmt.Println(a)
a++
}
}
最後來看一下 九九乘法唄
package main
import "fmt"
func main() {
twoForMethod()
gotoMethod()
}
//
func twoForMethod() {
for m := 1; m < 10; m++ {
for n := 1; n <= m; n++ {
fmt.Printf("%dx%d=%d ",n,m,m*n)
}
fmt.Println("")
}
}
//
func gotoMethod() {
for m := 1; m < 10; m++ {
n := 1
LOOP: if n <= m {
fmt.Printf("%dx%d=%d ",n,m,m*n)
n++
goto LOOP
} else {
fmt.Println("")
}
n++
}
}
陣列
宣告陣列的時候,要注意一下賦值的是int還是string唷,參考範例如下
package main
import "fmt"
func main() {
var arr [10]int
var i,j int
var langs [4]string
langs[0] = "Go"
fmt.Printf("langs[0] = %s\n", langs[0] )
for i = 0; i < 10; i++ {
arr[i] = i /* 设置 i + 100 */
}
/* 输出 */
for j = 0; j < 10; j++ {
fmt.Printf("arr[%d] = %d\n", j, arr[j] )
}
}
然後我聽隔壁的老王說了一件很重要的事情
golang陣列的長度在定義後不可更改
golang陣列的長度在定義後不可更改
golang陣列的長度在定義後不可更改
很重要,所以我打了三次! 絕對不是混字阿