If-Verzweigungsanweisung in Golang

GolangGolangBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

Beim Erstellen eines To-Do-Plan wird eine Aufgabe, wenn sie noch nicht abgeschlossen ist, zur To-Do-Liste hinzugefügt, und wenn sie abgeschlossen ist, wird sie in die Liste der abgeschlossenen Aufgaben verschoben.

In der Welt der Programmierung müssen wir auch die Richtung des Programms basierend auf verschiedenen Anforderungen ändern. Lassen Sie uns nun die if-Verzweigungsanweisung kennenlernen, die eine Flusssteuerungsanweisung ist.

Wissenspunkte:

  • if-Anweisung
  • if-else-Anweisung
  • else-if-Anweisung
  • Formatierungsregeln

Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL go(("Golang")) -.-> go/BasicsGroup(["Basics"]) go(("Golang")) -.-> go/FunctionsandControlFlowGroup(["Functions and Control Flow"]) go(("Golang")) -.-> go/AdvancedTopicsGroup(["Advanced Topics"]) go/BasicsGroup -.-> go/values("Values") go/BasicsGroup -.-> go/variables("Variables") go/FunctionsandControlFlowGroup -.-> go/if_else("If Else") go/FunctionsandControlFlowGroup -.-> go/switch("Switch") go/AdvancedTopicsGroup -.-> go/time("Time") subgraph Lab Skills go/values -.-> lab-149071{{"If-Verzweigungsanweisung in Golang"}} go/variables -.-> lab-149071{{"If-Verzweigungsanweisung in Golang"}} go/if_else -.-> lab-149071{{"If-Verzweigungsanweisung in Golang"}} go/switch -.-> lab-149071{{"If-Verzweigungsanweisung in Golang"}} go/time -.-> lab-149071{{"If-Verzweigungsanweisung in Golang"}} end

if-Anweisung

Die am häufigsten verwendete Verzweigungsanweisung ist die if-Anweisung, die prüft, ob eine voreingestellte Bedingung wahr ist, und dann entscheidet, ob der Codeblock ausgeführt wird. Hier ist ihr Format:

if condition {
    code block
}

Wenn die Bedingung wahr ist, führt das Programm den Codeblock aus; andernfalls überspringt es den Codeblock.

Schauen wir uns ein praktisches Beispiel an. Erstellen Sie eine neue Datei namens if.go und schreiben Sie den folgenden Code hinein:

cd ~/project
touch if.go
package main

import (
    "fmt"
)

func main() {
    var num = 40
    // Get the remainder of dividing two numbers using %
    if num % 2 == 0 {
        fmt.Println(num, "is even")
    }
}

Führen Sie das Programm aus:

go run if.go

Das Ergebnis ist wie folgt:

40 is even

In diesem Programm deklarieren wir zuerst eine Ganzzahlvariable num. Dann verwenden wir in der if-Anweisung den Modulo-Operator %, um den Rest der Division von num durch 2 zu erhalten, und den Gleichheitsoperator ==, um zu prüfen, ob der Rest gleich 0 ist. Wenn dies der Fall ist, wird der Codeblock ausgeführt und es wird ausgegeben, dass die Zahl gerade ist.

if else-Anweisung

Was sollen wir tun, wenn wir etwas anderes ausgeben möchten, wenn die Bedingung in der if-Anweisung nicht erfüllt ist? In diesem Fall können wir die if else-Anweisung verwenden. Wenn die Bedingung in der if-Anweisung wahr ist, wird der Codeblock in der if-Anweisung ausgeführt; andernfalls wird der Codeblock in der else-Anweisung ausgeführt.

Das Format der if else-Anweisung ähnelt der if-Anweisung:

if condition {
    code
} else {
    code
}

Schauen wir uns ein Beispiel an. Das folgende Programm gibt aus, ob heute ein Wochentag oder ein Wochenende ist:

cd ~/project
touch if_else.go
package main

import (
    "fmt"
    "time"
)

func main() {
    // Get the current time
    t := time.Now()

    // Check whether it is Saturday or Sunday
    if t.Weekday() == time.Saturday || t.Weekday() == time.Sunday {
        fmt.Println("Today is:", t.Weekday(), "weekend")
    } else {
        fmt.Println("Today is:", t.Weekday(), "weekday")
    }
}

Führen Sie das Programm aus:

go run if_else.go

Das Ergebnis ist wie folgt:

Today is: Monday weekday

Wir verwenden das time-Paket aus der Standardbibliothek, um die aktuelle Zeit zu erhalten. Dann vergleichen wir sie mit Samstag und Sonntag. Wenn es ein Wochenende ist, wird der Codeblock in der if-Anweisung ausgeführt; andernfalls wird der Codeblock in der else-Anweisung ausgeführt.

else if-Anweisung

Neben der Prüfung einer einzelnen Bedingung können wir auch die else if-Anweisung verwenden, um mehrere Bedingungen zu prüfen.

Ihr Format ist wie folgt:

if condition {
    code
} else if condition {
    code
} else {
    code
}

In einer Verzweigungsanweisung können Sie mehrere else if-Anweisungen haben, aber nur eine if- und eine else-Anweisung. Die else if-Anweisung sollte zwischen der if- und der else-Anweisung positioniert werden.

Lassen Sie uns das Programm im Abschnitt "if else" umschreiben, um den Wochentag auszugeben:

Aktualisieren Sie die Datei if_else.go:

package main

import (
    "fmt"
    "time"
)

func main() {
    today := time.Now().Weekday()

    if today == time.Monday {
        fmt.Println("Today is Monday")
    } else if today == time.Tuesday {
        fmt.Println("Today is Tuesday")
    } else if today == time.Wednesday {
        fmt.Println("Today is Wednesday")
    } else if today == time.Thursday {
        fmt.Println("Today is Thursday")
    } else if today == time.Friday {
        fmt.Println("Today is Friday")
    } else if today == time.Saturday {
        fmt.Println("Today is Saturday")
    } else {
        fmt.Println("Today is Sunday")
    }
}

Führen Sie das Programm aus:

go run if_else.go

Nach dem Ausführen ist das Ergebnis wie folgt:

Today is Monday

In dem vorherigen Programm verwenden wir zuerst time.Now(), um die aktuelle Zeit zu erhalten, und dann den Wochentag aus der aktuellen Zeit zu extrahieren. In diesem Programm werden diese beiden Codezeilen zu einer Zeile zusammengefasst. Nachdem der Wochentag ermittelt wurde, wird er mit der Verzweigungsanweisung abgeglichen, um den Wochentag auszugeben.

Initialisierungsanweisung in der if-Anweisung

Bei unserem vorherigen Lernprozess hatte die if-Anweisung nur einen Parameter, nämlich die Bedingung:

if condition {
    code
}

Der vollständige Parameter umfasst auch eine Initialisierungsanweisung, die in Go ein optionaler Parameter ist. Sie wird typischerweise zur Deklaration und Initialisierung temporärer Variablen verwendet. Die Initialisierungsanweisung wird bei der Verwendung durch ein Semikolon getrennt. Die Syntax ist wie folgt:

if initialization statement; condition {
    code
}

Wir haben das Programm aus dem Abschnitt "if else" umgeschrieben. Wir haben die Variablendeklaration als Initialisierungsanweisung in die if-Anweisung verschoben, um den Code zu verkürzen:

package main

import (
    "fmt"
    "time"
)

func main() {
    if t := time.Now(); t.Weekday() == time.Saturday || t.Weekday() == time.Sunday {
        fmt.Println("Today is:", t.Weekday(), "weekend, studying and recharging")
    } else {
        fmt.Println("Today is:", t.Weekday(), "also studying hard")
    }
}

Führen Sie das Programm aus:

go run if_else.go

Man kann sehen, dass es korrekt läuft:

Today is: Monday also studying hard

Hinweis: Der Gültigkeitsbereich der in der Initialisierungsanweisung deklarierten Variablen ist nur innerhalb des if-Blocks.

Formatierungsprobleme

Ich weiß nicht, ob ihr Go-Entwickler bei der Lernphase der if-Anweisungen die Formatierungsanforderungen von Go bemerkt habt.

  • In Go müssen die Schlüsselwörter if, else und else if in derselben Zeile wie die rechte geschweifte Klammer } stehen.
  • Die Schlüsselwörter else if und else müssen ebenfalls in derselben Zeile wie die vorherige linke geschweifte Klammer stehen, andernfalls meldet der Compiler einen Syntaxfehler zur Kompilierzeit.

Wenn wir das Programm ausführen, nachdem wir die else-Anweisung in die nächste Zeile verschoben haben, meldet der Compiler einen Syntaxfehler.

Zusammenfassung

In diesem Lab haben wir die if-Verzweigungsanweisung erklärt, einschließlich der folgenden Hauptpunkte:

  • In einem if-Verzweigungscodeblock können mehrere else if-Anweisungen vorhanden sein, aber es kann nur eine if- und eine else-Anweisung geben.
  • Die else if-Anweisung muss zwischen der if- und der else-Anweisung platziert werden.
  • Sie können eine Initialisierungsanweisung in der if-Anweisung verwenden, um den Code zu verkürzen.
  • Der Compiler verlangt, dass die Schlüsselwörter if, else und else if in derselben Zeile wie die geschweiften Klammern stehen müssen.