Menu
Coddy logo textTech

Fragen stellen

Teil des Abschnitts Logik & Kontrollfluss der Swift-Journey von Coddy — Lektion 50 von 56.

Das erste Feature: Jede Frage der Reihe nach stellen und ausgeben, ob jede Antwort richtig war.

Der Fragenkatalog ist für diese Lektion fest im Code hinterlegt, 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")
}

Von oben nach unten lesen: die Frage ausgeben, eine Zeile einlesen, vergleichen. Die nächste Lektion lockert diesen strengen Vergleich auf, damit er nicht an Groß- und Kleinschreibung oder überflüssigen Leerzeichen scheitert.

challenge icon

Aufgabe

Einfach

Die questions-Datenbank ist vorgegeben. Lies drei Zeilen von stdin (die Antworten des Spielers in der richtigen Reihenfolge). Gib für jede Frage Folgendes aus:

  1. Den Fragetext in einer eigenen Zeile
  2. correct, wenn die eingegebene Antwort exakt mit der gespeicherten Antwort übereinstimmt, andernfalls wrong

Gib nach allen drei Fragen Score: <n>/3 mit der Anzahl der korrekten Antworten aus.

Für die Eingabe 4 / Paris / red lautet die Ausgabe:

2 + 2?
correct
Capital of France?
correct
Color of grass?
wrong
Score: 2/3

Spickzettel

Iterieren Sie über ein Tupel-Array von Fragen, lesen Sie Antworten von stdin ein und vergleichen Sie diese:

let questions: [(String, String, String)] = [
    ("math", "2 + 2?", "4"),
    ("geo", "Capital of France?", "Paris")
]

var score = 0
for (_, text, answer) in questions {
    print(text)
    let given = readLine()!
    if given == answer {
        print("correct")
        score += 1
    } else {
        print("wrong")
    }
}
print("Score: \(score)/\(questions.count)")

Probier es selbst

let questions: [(String, String, String)] = [
    ("math", "2 + 2?", "4"),
    ("geo", "Capital of France?", "Paris"),
    ("science", "Color of grass?", "green")
]

// TODO: Für jede Frage den Text ausgeben, die Antwort lesen, richtig/falsch ausgeben;
// dann 'Score: <n>/3' ausgeben
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Logik & Kontrollfluss