問題の出題
CoddyのSwiftジャーニー「ロジックとフロー」セクションの一部。レッスン 50/56。
最初の機能:質問を順番にすべて出し、それぞれの回答が正解かどうかを表示します。
このレッスンでは、問題バンクはハードコードされており、プレイヤーの回答は標準入力(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行読み取り、比較します。次のレッスンでは、この厳密な比較を緩め、大文字と小文字の違いや余分な空白があっても失敗しないようにします。
チャレンジ
簡単前のステップのコードの代わりに、このquestionsの問題集を使ってプログラムを始めましょう。
let questions: [(String, String, String)] = [
("math", "2 + 2?", "4"),
("geo", "Capital of France?", "Paris"),
("science", "Color of grass?", "green")
]標準入力から3行(プレイヤーの回答を順番に)読み取ります。各質問について、次を出力します。
- 質問文を単独の行に出力する
- 回答が保存された答えと完全に一致する場合は
correct、そうでない場合はwrong
3つの質問がすべて終わったら、正解数を使って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プレイグラウンド