Задаем вопросы
Часть раздела Логика и управление потоком путешествия по Swift на Coddy — урок 50 из 56.
Первая функция: задавать каждый вопрос по порядку и выводить, был ли каждый ответ правильным.
Банк вопросов жестко закодирован для этого урока, ответы игрока поступают из stdin (по одному в строке, по порядку).
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")
}Читайте сверху вниз: выведите вопрос, прочитайте одну строку, сравните. В следующем уроке это строгое сравнение будет смягчено, чтобы оно не выдавало ошибку из-за регистра или лишних пробелов.
Задание
ЛегкоДан банк вопросов questions. Прочитайте три строки из stdin (ответы игрока по порядку). Для каждого вопроса выведите:
- Текст вопроса на отдельной строке
correct, если введенный ответ в точности совпадает с сохраненным ответом, в противном случае —wrong
После всех трех вопросов выведите Score: <n>/3 с количеством правильных ответов.
Для входных данных 4 / Paris / red вывод будет следующим:
2 + 2?
correct
Capital of France?
correct
Color of grass?
wrong
Score: 2/3Шпаргалка
Выполните итерацию по массиву кортежей с вопросами, считайте ответы из стандартного ввода (stdin) и сравните их:
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)")Попробуйте сами
let questions: [(String, String, String)] = [
("math", "2 + 2?", "4"),
("geo", "Capital of France?", "Paris"),
("science", "Color of grass?", "green")
]
// TODO: для каждого вопроса вывести текст, прочитать ответ, вывести правильно/неправильно;
// затем вывести 'Score: <n>/3'
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Логика и управление потоком
1Строки в деталях
Подсчет и индексыРегистр и удаление пробеловПоиск в строкахРазделение и объединениеЗамена подстрокИтоги — Проверка имени пользователя4Множества
Создание множествОбъединение и пересечениеРазность и симметрическая разностьПодмножество и надмножествоИтоги — Фильтр тегов7Проект — Трекер привычек
Обзор проектаОтметить выполнение10Проект — Движок викторины
Обзор проектаЗадаем вопросы2Диапазоны и шаги
Закрытые и полуоткрытыеШагМетоды диапазоновДиапазоны в SwitchИтоги: Сетка календаря