Menu
Coddy logo textTech

Valutazione flessibile

Fa parte della sezione Logica e flusso del percorso Swift di Coddy. Lezione 51 di 56.

L’uguaglianza rigorosa è severa. I quiz veri accettano paris, Paris e PARIS come la stessa risposta.

La ricetta del capitolo 1: rimuovi gli spazi vuoti, converti entrambi i lati in minuscolo, confronta:

func grade(_ given: String, _ answer: String) -> Bool {
    let g = given.trimmingCharacters(in: .whitespaces).lowercased()
    let a = answer.trimmingCharacters(in: .whitespaces).lowercased()
    return g == a
}

Questo è il tipo di helper che vale la pena estrarre in una funzione a sé stante. Il ciclo del quiz risulta più chiaro con una riga per domanda, e la correzione di un bug domani si farà in un solo punto.

challenge icon

Sfida

Facile

Definisci una funzione grade(_ given: String, _ answer: String) -> Bool che restituisce true quando le due stringhe corrispondono dopo aver rimosso gli spazi bianchi e convertito entrambe le parti in minuscolo.

È fornito l'insieme di domande questions. Leggi tre righe da stdin. Stampa, per ogni domanda:

  1. Il testo della domanda
  2. correct o wrong in base al confronto permissivo

Al termine dell'esecuzione, stampa Score: <n>/3.

Per l'input 4 / PARIS / Green, l'output è:

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

Provalo tu

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

// TODO: func grade(_:_:)->Bool con trim e confronto in minuscolo
// poi esegui un ciclo, stampa la domanda, leggi la risposta, stampa corretto/errato;
// termina con 'Score: <n>/3'
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Logica e flusso

Esercitati da solo: Playground Swift