Menu
CoddyTech

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.

challenge icon

Desafio

Fácil

Inicie 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:

  1. O texto da pergunta em sua própria linha
  2. correct quando 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/3

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, imprima o texto, leia a resposta e imprima correto/errado;
// depois imprima 'Score: <n>/3'
quiz iconTeste seus conhecimentos

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

Pratique por conta própria: Playground de Swift