囲碁言語に基づく論理制御

移動言語基本的なフロー制御
場合は
、フロー制御は、すべての言語の制御ロジック方向と実行順序の重要な部分であり、フロー制御は、各言語の経線といえる
移動言語のメインフロー制御場合とするためのものであり、スイッチと後藤主にコードを単純化し、拡張タイプのプロセス制御に属する反復コードの構造を減らすため

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")
}

おすすめ

転載: blog.csdn.net/weixin_44865158/article/details/114484824