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 está certa.
O banco de perguntas está codificado diretamente nesta lição, e as respostas do jogador vêm de 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: imprima a pergunta, leia uma linha e compare. A próxima lição flexibiliza essa comparação rigorosa para que ela não falhe por causa de letras maiúsculas ou espaços em branco extras.
Desafio
FácilInicie seu programa com este banco de questions, no lugar do código da etapa anterior:
let questions: [(String, String, String)] = [
("math", "2 + 2?", "4"),
("geo", "Capital of France?", "Paris"),
("science", "Color of grass?", "green")
]Leia três linhas da entrada padrão (as respostas do jogador, na 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ário,wrong
Depois das três perguntas, imprima Score: <n>/3 com a quantidade 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/3Experimente 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, imprima o texto, leia a resposta e imprima correto/errado;
// depois imprima '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 PalavrasPratique por conta própria: Playground de Swift