Fragen stellen
Teil des Abschnitts Logik & Ablauf der Swift-Journey von Coddy. Lektion 50 von 56.
Das erste Feature: Stelle jede Frage der Reihe nach und gib aus, ob jede Antwort richtig war.
Der Fragenkatalog ist für diese Lektion fest codiert; die Antworten des Spielers kommen von stdin (eine pro Zeile, der Reihe nach).
let questions: [(String, String, String)] = [
("math", "2 + 2?", "4"),
("geo", "Capital of France?", "Paris")
]
for (_, text, answer) in questions {
print(text)
let given = readLine()!
print(given == answer ? "correct" : "wrong")
}Lies von oben nach unten: Gib die Frage aus, lies eine Zeile ein und vergleiche. Die nächste Lektion lockert diesen strengen Vergleich, damit er nicht an Groß- und Kleinschreibung oder überflüssigen Leerzeichen scheitert.
Aufgabe
EinfachBeginne dein Programm mit dieser questions-Fragenliste anstelle des Codes aus dem vorherigen Schritt:
let questions: [(String, String, String)] = [
("math", "2 + 2?", "4"),
("geo", "Capital of France?", "Paris"),
("science", "Color of grass?", "green")
]Lies drei Zeilen von stdin ein (die Antworten des Spielers, der Reihe nach). Gib für jede Frage Folgendes aus:
- Den Fragetext in einer eigenen Zeile
correct, wenn die gegebene Antwort genau der gespeicherten Antwort entspricht, andernfallswrong
Gib nach allen drei Fragen Score: <n>/3 mit der Anzahl richtiger Antworten aus.
Bei der Eingabe 4 / Paris / red lautet die Ausgabe:
2 + 2?
correct
Capital of France?
correct
Color of grass?
wrong
Score: 2/3Probier es selbst
let questions: [(String, String, String)] = [
("math", "2 + 2?", "4"),
("geo", "Capital of France?", "Paris"),
("science", "Color of grass?", "green")
]
// TODO: Gib für jede Frage den Text aus, lies die Antwort ein und gib richtig/falsch aus;
// gib dann 'Score: <n>/3' aus
Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Logik & Ablauf
1Strings im Detail
Zählen und IndizesGroß-/Kleinschreibung und TrimSuchen in StringsAufteilen und ZusammenfügenTeilstrings ersetzenRückblick – Benutzernamen prüfen4Mengen
Mengen erstellenVereinigung und SchnittmengeSubtraktion und symmetrische DifferenzTeilmenge und ObermengeWiederholung – Tag-Filter7Projekt – Gewohnheitstracker
ProjektübersichtAls erledigt markieren10Projekt – Quiz-Engine
ProjektübersichtFragen stellen2Bereiche & Schrittweiten
Geschlossen vs. halboffenSchrittweiteBereichsmethodenBereiche in SwitchRückblick – Kalender-Raster5Funktionen höherer Ordnung Teil 1
MapFilterReduceVerketten von Map, Filter und ReduceRückblick – WortstatistikÜbe selbstständig: Swift-Playground