移動言語基本的なフロー制御
場合は
、フロー制御は、すべての言語の制御ロジック方向と実行順序の重要な部分であり、フロー制御は、各言語の経線といえる
移動言語のメインフロー制御場合とするためのものであり、スイッチと後藤主にコードを単純化し、拡張タイプのプロセス制御に属する反復コードの構造を減らすため
package main
import "fmt"
func main() {
//基本if语句
i := 40
if i > 18 {
fmt.Println("您已经成年了")
} else {
fmt.Println("您是未成年")
}
//多判断
if i > 18 && i < 35 {
fmt.Println("您已经成年了")
} else if i > 35 {
fmt.Println("您已经是中年人了")
} else {
fmt.Println("您是未成年")
}
//if中添表达式,if中i的作用域只在if中
if i := 20; i > 18 && i < 35 {
fmt.Println("您已经成年了")
} else if i > 35 {
fmt.Println("您已经是中年人了")
} else {
fmt.Println("您是未成年")
}
}
for
Go言語のすべてのループは、forキーワードを使用して完了することができます。
package main
import "fmt"
func main() {
//基础for循环
for i := 0; i <= 20; i++ {
fmt.Printf("%d\n", i)
}
//去掉初始语句的fro循环
i := 0
for ; i <= 20; i++ {
fmt.Printf("%d\n", i)
}
//去掉结束语句的for循环
for i := 0; i <= 20; {
fmt.Printf("%d\n", i)
i++
}
}
for range
Go言語は、配列、スライス、文字列、マップ、チャネル(チャネル)をトラバースするために範囲に使用します
1.配列、スライス、文字列、戻りインデックスと値
2.マップの戻りキーと値
3.チャネルのチャネル戻り値
package main
import "fmt"
func main() {
s := "sdfsdfsdf"
for i, v := range s {
fmt.Printf("%d--%c\n", i, v)
}
}
ループから飛び出して、ループをスキップします
package main
import "fmt"
func main() {
//当i等于5时结束循环(跳出循环)
for i := 0; i < 10; i++ {
if i == 5 {
break
}
fmt.Printf("%d\n", i)
}
fmt.Println("OVER")
//当i等于5时,跳过本次循环,进行下一次循环
for i := 0; i < 10; i++ {
if i == 5 {
continue
}
fmt.Printf("%d\n", i)
}
fmt.Println("OVER")
}
switchを使用して、多数の値を判断し
ます。defaultキーワードは、switch構造のすべてのケースを一致させることができないため、デフォルトのコードがデフォルトで実行されます。
package main
import "fmt"
func main() {
i := 2
switch i {
case 1:
fmt.Println("这是大拇指")
case 2:
fmt.Println("这是食指")
case 3:
fmt.Println("这是中指")
case 4:
fmt.Println("这是无名指")
case 5:
fmt.Println("这是小拇指")
default:
fmt.Println("无效输入")
}
//在switch语句中声明变量,同时case中可以有多个值
switch p := 0; p {
case 1, 3, 5, 7, 9:
fmt.Println("奇数")
case 2, 4, 6, 8:
fmt.Println("偶数")
default:
fmt.Println("无效输入")
}
//分支还可以使用表达式,这时switch语句就不用再跟判断变量
ii := 10
switch {
case ii < 18:
fmt.Println("您还是孩子")
case ii > 18:
fmt.Println("您已经成年了")
}
//fallthrough语法可以执行满足条件的case的下一个case
switch i {
case 1:
fmt.Println("这是大拇指")
case 2:
fmt.Println("这是食指")
fallthrough
case 3:
fmt.Println("这是中指")
case 4:
fmt.Println("这是无名指")
case 5:
fmt.Println("这是小拇指")
default:
fmt.Println("无效输入")
}
}
gotoを使用してコードを簡略化する
package main
import "fmt"
func main() {
//goto+label实现多层for循环跳转
for i := 0; i < 10; i++ {
for j := 'A'; j < 'Z'; j++ {
if j == 'C' {
goto XX //跳到指定的标签
}
fmt.Printf("%d--%c\n", i, j)
}
}
XX: //label标签
fmt.Println("over")
}