Menu
Coddy logo textTech

問題の出題

CoddyのSwiftジャーニー「ロジックとフロー」セクションの一部 — レッスン 50/56。

最初の機能:すべての質問を順番に出題し、それぞれの回答が正解だったかどうかを表示します。

このレッスンでは問題バンクはハードコードされており、プレイヤーの回答はstdin(標準入力)から(1行に1つずつ、順番に)入力されます。

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

上から順に読みます:質問を表示し、1行読み取り、比較します。次のレッスンでは、大文字小文字の違いや余分な空白で失敗しないように、その厳密な比較を緩和します。

challenge icon

チャレンジ

簡単

questions バンクが与えられています。stdin から 3 行(プレイヤーの回答を順番に)読み取ります。各質問に対して、以下を出力してください:

  1. 質問のテキストを独自の行に出力
  2. 入力された回答が保存されている回答と完全に一致する場合は correct、そうでない場合は wrong を出力

3 つの質問がすべて終わったら、正解数を含めて 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腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

ロジックとフローのすべてのレッスン