Menu
CoddyTech

Großzügige Bewertung

Teil des Abschnitts Logik & Ablauf der Swift-Journey von Coddy. Lektion 51 von 56.

Strenge Gleichheit ist streng. In echten Quizzen gelten paris, Paris und PARIS als dieselbe Antwort.

Das Rezept aus Kapitel 1: Leerzeichen entfernen, beide Seiten in Kleinbuchstaben umwandeln, vergleichen:

func grade(_ given: String, _ answer: String) -> Bool {
    let g = given.trimmingCharacters(in: .whitespaces).lowercased()
    let a = answer.trimmingCharacters(in: .whitespaces).lowercased()
    return g == a
}

Das ist die Art von Hilfsfunktion, die es wert ist, in eine eigene Funktion ausgelagert zu werden. Die Quizschleife ist übersichtlicher, wenn für jede Frage eine eigene Zeile steht, und die morgige Fehlerbehebung findet an einer Stelle statt.

challenge icon

Aufgabe

Einfach

Definiere eine Funktion grade(_ given: String, _ answer: String) -> Bool, die true zurückgibt, wenn die beiden Zeichenfolgen nach dem Entfernen von Leerzeichen und der Umwandlung beider Seiten in Kleinbuchstaben übereinstimmen.

Beginne dein Programm mit diesem Fragenkatalog questions, demselben wie im 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. Gib für jede Frage Folgendes aus:

  1. Den Fragetext
  2. correct oder wrong, je nach dem großzügigen Vergleich

Gib nach der Ausführung Score: <n>/3 aus.

Bei der Eingabe 4 / PARIS / Green lautet die Ausgabe:

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

Probier es selbst

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

// TODO: func grade(_:_:)->Bool mit trim und Vergleich in Kleinbuchstaben
// dann in einer Schleife die Frage ausgeben, die Antwort einlesen und richtig/falsch ausgeben;
// mit 'Score: <n>/3' abschließen
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 & Ablauf

Übe selbstständig: Swift-Playground