Poser des questions
Fait partie de la section Logique et flux du Journey Swift de Coddy. Leçon 50 sur 56.
Première fonctionnalité : poser chaque question dans l’ordre et afficher si chaque réponse est correcte.
La banque de questions est codée en dur pour cette leçon ; les réponses du joueur proviennent de stdin (une par ligne, dans l’ordre).
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")
}Lisez de haut en bas : affichez la question, lisez une ligne, comparez. La leçon suivante assouplit cette comparaison stricte afin qu’elle n’échoue pas à cause des majuscules ou des espaces superflus.
Défi
FacileCommencez votre programme avec cette banque de questions, à la place du code 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")
]Lisez trois lignes depuis l’entrée standard (les réponses du joueur, dans l’ordre). Pour chaque question, affichez :
- Le texte de la question sur sa propre ligne
correctlorsque la réponse donnée est exactement égale à la réponse stockée, sinonwrong
Après les trois questions, affichez Score: <n>/3 avec le nombre de réponses correctes.
Pour l’entrée 4 / Paris / red, la sortie est :
2 + 2?
correct
Capital of France?
correct
Color of grass?
wrong
Score: 2/3Essayez vous-même
let questions: [(String, String, String)] = [
("math", "2 + 2?", "4"),
("geo", "Capital of France?", "Paris"),
("science", "Color of grass?", "green")
]
// TODO: pour chaque question, afficher le texte, lire la réponse, puis afficher correct/incorrect ;
// puis afficher 'Score: <n>/3'
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
1Les chaînes de caractères en profondeur
Comptage et indicesCasse et nettoyageRecherche dans les chaînesDécoupage et jointureRemplacement de sous-chaînesRécapitulatif - Vérification du nom d'utilisateur4Ensembles
Création d'ensemblesUnion et intersectionSoustraction et différence symétriqueSous-ensemble et sur-ensembleRécapitulatif - Filtre de tags7Projet - Suivi d'habitudes
Aperçu du projetMarquer comme terminé10Projet - Moteur de quiz
Présentation du projetPoser des questions2Intervalles et Pas
Fermé vs Semi-ouvertLe PasMéthodes d'intervalleIntervalles dans un SwitchRécapitulatif - Grille de calendrier5Fonctions d'ordre supérieur, Partie 1
MapFilterReduceChaînage de map, filter, reduceRécapitulatif - Statistiques de motsEntraînez-vous par vous-même : Playground Swift