Fazer Perguntas
Parte da seção Lógica e Fluxo do Journey de Swift da Coddy — lição 50 de 56.
O primeiro recurso: faça cada pergunta em ordem e imprima se cada resposta estava correta.
O banco de questões é codificado rigidamente para esta lição, as respostas do jogador vêm do stdin (uma por linha, em ordem).
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")
}Leia de cima para baixo: exiba a pergunta, leia uma linha, compare. A próxima lição suaviza essa comparação estrita para que não falhe por causa de letras maiúsculas ou espaços em branco extras.
Desafio
FácilO banco de questions é fornecido. Leia três linhas do stdin (as respostas do jogador, em ordem). Para cada pergunta, imprima:
- O texto da pergunta em sua própria linha
correctquando a resposta fornecida for exatamente igual à resposta armazenada, caso contráriowrong
Após todas as três perguntas, imprima Score: <n>/3 com a contagem de respostas corretas.
Para a entrada 4 / Paris / red, a saída é:
2 + 2?
correct
Capital of France?
correct
Color of grass?
wrong
Score: 2/3Folha de consulta
Itere sobre um array de tuplas de perguntas, leia as respostas do stdin e compare:
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)")Experimente você mesmo
let questions: [(String, String, String)] = [
("math", "2 + 2?", "4"),
("geo", "Capital of France?", "Paris"),
("science", "Color of grass?", "green")
]
// TODO: para cada pergunta, imprimir o texto, ler a resposta, imprimir correto/errado;
// depois imprimir 'Score: <n>/3'
Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas as lições de Lógica e Fluxo
1Strings a Fundo
Contagem e ÍndicesCase e TrimBusca em StringsDivisão e JunçãoSubstituindo SubstringsRecapitulação - Verificação de Nome de Usuário4Conjuntos
Criando ConjuntosUnião e InterseçãoSubtração e Diferença SimétricaSubconjunto e SuperconjuntoRecapitulação - Filtro de Tags7Projeto - Monitor de Hábitos
Visão Geral do ProjetoMarcar como Concluído10Projeto - Mecanismo de Quiz
Visão Geral do ProjetoFazer Perguntas2Intervalos e Strides
Fechado vs Meio-AbertoStrideMétodos de IntervaloIntervalos no SwitchRecapitulação - Grade de Calendário5Funções de Ordem Superior Parte 1
MapFilterReduceEncadeando map, filter, reduceRecapitulação - Estatísticas de Palavras