질문하기
Coddy Swift 여정의 로직 및 흐름 섹션에 포함된 레슨 — 56개 중 50번째.
첫 번째 기능: 모든 질문을 순서대로 묻고 각 답변이 맞았는지 출력합니다.
이 레슨에서는 문제 은행이 하드코딩되어 있으며, 플레이어의 답변은 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'을 출력합니다.
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.