Poser des questions
Fait partie de la section Logique et Flux du Journey Swift de Coddy — leçon 50 sur 56.
La première fonctionnalité : poser chaque question dans l'ordre et afficher si chaque réponse était 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 de la casse ou d'espaces superflus.
Défi
FacileLa banque questions est fournie. Lisez trois lignes depuis stdin (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 enregistré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/3Aide-mémoire
Itérez sur un tableau de tuples de questions, lisez les réponses depuis stdin et comparez :
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)")Essayez vous-même
let questions: [(String, String, String)] = [
("math", "2 + 2?", "4"),
("geo", "Capital of France?", "Paris"),
("science", "Color of grass?", "green")
]
// À FAIRE : pour chaque question, afficher le texte, lire la réponse, 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 mots