Menu
Coddy logo textTech

Hacer preguntas

Parte de la sección Lógica y Flujo del Journey de Swift de Coddy — lección 50 de 56.

La primera funcionalidad: hacer cada pregunta en orden e imprimir si cada respuesta fue correcta.

El banco de preguntas está predefinido para esta lección, las respuestas del jugador provienen de stdin (una por línea, en orden).

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

Lee de arriba a abajo: imprime la pregunta, lee una línea, compara. La siguiente lección suaviza esa comparación estricta para que no falle por el uso de mayúsculas o espacios en blanco adicionales.

challenge icon

Desafío

Fácil

Se proporciona el banco de questions. Lee tres líneas desde stdin (las respuestas del jugador, en orden). Para cada pregunta, imprime:

  1. El texto de la pregunta en su propia línea
  2. correct cuando la respuesta dada sea exactamente igual a la respuesta almacenada, de lo contrario wrong

Después de las tres preguntas, imprime Score: <n>/3 con el recuento de respuestas correctas.

Para la entrada 4 / Paris / red, la salida es:

2 + 2?
correct
Capital of France?
correct
Color of grass?
wrong
Score: 2/3

Hoja de referencia

Itera sobre un array de tuplas de preguntas, lee las respuestas desde stdin y compara:

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

Pruébalo tú mismo

let questions: [(String, String, String)] = [
    ("math", "2 + 2?", "4"),
    ("geo", "Capital of France?", "Paris"),
    ("science", "Color of grass?", "green")
]

// TODO: para cada pregunta, imprimir texto, leer respuesta, imprimir correcto/incorrecto;
// luego imprimir 'Score: <n>/3'
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Lógica y Flujo