Wie andere Sprachen bietet auch Go eine switch-Anweisung.
Switch-Anweisungen sind ein kürzerer Weg, lange if ... else if-Anweisungen zu schreiben.
Um eine Switch-Anweisung zu erstellen, beginnen wir mit dem Schlüsselwort switch, gefolgt von einem Wert oder Ausdruck.
Dann deklarieren wir jede der Bedingungen mit dem Schlüsselwort case.
Wir können auch einen default-Fall deklarieren, der ausgeführt wird, wenn keine der vorherigen case-Bedingungen zutrifft:
operatingSystem := "windows"
switch operatingSystem {
case "windows":
// do something if the operating system is windows
case "linux":
// do something if the operating system is linux
case "macos":
// do something if the operating system is macos
default:
// do something if the operating system is none of the above
}
Interessant an Switch-Anweisungen ist, dass der Wert nach dem Schlüsselwort switch weggelassen werden kann und wir für jedes case boolesche Bedingungen angeben können:
age := 21
switch {
case age > 20 && age < 30:
// do something if age is between 20 and 30
case age == 10:
// do something if age is equal to 10
default:
// do something else for every other case
}
In dieser Übung simulieren wir den ersten Zug eines Blackjack-Spiels.
Du erhältst zwei Karten und kannst die offene Karte des Dealers sehen. Alle Karten werden durch einen String wie „ace“, „king“, „three“, „two“ usw. dargestellt. Die Werte der einzelnen Karten sind:
| Karte | Wert | Karte | Wert |
|---|---|---|---|
| ace | 11 | eight | 8 |
| two | 2 | nine | 9 |
| three | 3 | ten | 10 |
| four | 4 | jack | 10 |
| five | 5 | queen | 10 |
| six | 6 | king | 10 |
| seven | 7 | other | 0 |
Hinweis: Üblicherweise können Karten mit dem Wert „ace“ den Wert 1 oder 11 haben, aber der Einfachheit halber nehmen wir an, dass sie nur den Wert 11 haben können.
Je nach deinen zwei Karten und der Karte des Dealers gibt es eine Strategie für den ersten Zug des Spiels, bei der du die folgenden Optionen hast:
Obwohl sie noch nicht optimal ist, wirst du die Strategie befolgen, die dein Freund Alex entwickelt hat. Sie sieht wie folgt aus:
Implementiere eine Funktion, um den numerischen Wert einer Karte zu berechnen:
value := ParseCard("ace")
fmt.Println(value)
// Output: 11
Schreibe eine Funktion, die die oben beschriebene Entscheidungslogik implementiert:
func FirstTurn(card1, card2, dealerCard string) string
Hier sind einige Beispiele für die erwarteten Ergebnisse:
FirstTurn("ace", "ace", "jack") == "P"
FirstTurn("ace", "king", "ace") == "S"
FirstTurn("five", "queen", "ace") == "H"
Melde dich bei Exercism an, um Go mit 35 Konzepte167 Übungen und echtem menschlichen Mentoring zu lernen und zu meistern, alles kostenlos.