Menu
CoddyTech

Notation flexible

Fait partie de la section Logique et flux du Journey Swift de Coddy. Leçon 51 sur 56.

L’égalité stricte est impitoyable. Les vrais quiz acceptent paris, Paris et PARIS comme une seule et même réponse.

La recette du chapitre 1 : supprimer les espaces superflus, mettre les deux côtés en minuscules, comparer :

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

C’est le genre de fonction utilitaire qu’il vaut la peine d’extraire dans une fonction à part. La boucle du questionnaire est plus lisible avec une ligne par question, et la correction de bug de demain se fera à un seul endroit.

challenge icon

Défi

Facile

Définis une fonction grade(_ given: String, _ answer: String) -> Bool qui renvoie true lorsque les deux chaînes correspondent après suppression des espaces blancs et conversion des deux côtés en minuscules.

Commence ton programme avec cette banque de questions questions, identique à celle de l’étape précédente :

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

Lis trois lignes depuis l’entrée standard. Affiche, pour chaque question :

  1. Le texte de la question
  2. correct ou wrong selon la comparaison tolérante

Après l’exécution, affiche Score: <n>/3.

Pour l’entrée 4 / PARIS / Green, la sortie est :

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

Essayez vous-même

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

// TODO: func grade(_:_:)->Bool avec suppression des espaces en début et en fin et comparaison en minuscules
// puis parcourir les questions, afficher la question, lire la réponse, afficher correct/incorrect ;
// terminer par 'Score: <n>/3'
quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Logique et flux

Entraînez-vous par vous-même : Playground Swift