提出问题
本课属于 Coddy Swift 学习旅程的“逻辑与流程”单元。第 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 已给出。从标准输入读取三行(按顺序读取玩家的答案)。对于每个问题,输出:
- 问题文本,单独占一行
- 如果给出的答案与存储的答案完全相同,则输出
correct,否则输出wrong
全部三个问题处理完后,输出 Score: <n>/3,其中包含答对的数量。
输入 4 / Paris / red 时,输出为:
2 + 2?
correct
Capital of France?
correct
Color of grass?
wrong
Score: 2/3亲手试试
let questions: [(String, String, String)] = [
("math", "2 + 2?", "4"),
("geo", "Capital of France?", "Paris"),
("science", "Color of grass?", "green")
]
// TODO:对每道题,输出题目文本,读取答案,再输出正确或错误;
// 然后输出 'Score: <n>/3'
这节课包含一个小测验。开始学习即可作答,并记录你的进度。
逻辑与流程中的所有课
自己练习: Swift 在线编辑器