Menu
Coddy logo textTech

질문하기

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")
}

위에서 아래로 읽으세요: 질문을 출력하고, 한 줄을 읽고, 비교합니다. 다음 레슨에서는 대소문자 구분이나 불필요한 공백으로 인해 실패하지 않도록 이 엄격한 비교를 완화할 것입니다.

challenge icon

챌린지

쉬움

questions 뱅크가 주어집니다. stdin에서 세 줄(플레이어의 답변, 순서대로)을 읽습니다. 각 질문에 대해 다음을 출력합니다:

  1. 질문 텍스트를 별도의 줄에 출력합니다.
  2. 입력된 답변이 저장된 답변과 정확히 일치하면 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'을 출력합니다.
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

로직 및 흐름의 모든 레슨