Menu
Coddy logo textTech

Kulante Bewertung

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

Strikte Gleichheit ist streng. Echte Quiz akzeptieren paris, Paris und PARIS als dieselbe Antwort.

Das Rezept aus Kapitel 1: Leerzeichen entfernen, beide Seiten in Kleinschreibung 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
}

Dies ist die Art von Helfer, die es wert ist, in eine eigene Funktion ausgelagert zu werden. Die Quiz-Schleife liest sich sauberer mit einer Zeile pro Frage, und die Fehlerbehebung von morgen findet an einem einzigen Ort 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 Kleinschreibung beider Seiten übereinstimmen.

Die questions-Datenbank ist vorgegeben. Lies drei Zeilen von stdin. Gib für jede Frage Folgendes aus:

  1. Den Fragetext
  2. correct oder wrong basierend auf dem toleranten Vergleich

Gib nach dem Durchlauf Score: <n>/3 aus.

Für die Eingabe 4 / PARIS / Green lautet die Ausgabe:

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

Spickzettel

Toleranter String-Vergleich: Leerzeichen entfernen und beide Seiten vor dem Vergleich in Kleinschreibung umwandeln.

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

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 + Kleinschreibung-Vergleich
// dann Schleife, Frage ausgeben, Antwort lesen, richtig/falsch ausgeben;
// abschließen mit 'Score: <n>/3'
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