Nessa parte do código, não há um tratamento caso o usuário tente entrar com qualquer coisa que não seja um inteiro. Caso houvesse um tratamento o usuário teria uma melhor experiência.
print("0 - Não Aprendi | 1 - Revisar | 2 - Aprendi ")
if let val = readLine() { // Lê a opção do usuário.
if let valInt = Int(val) { // Converte para inteiro.
// Chama o algoritimo de classificação por repetição espaçada.
let days = Alg.classificate(val: valInt, lastDayIncremented: card.lastDaysIncremented)
if (days[0] != 0) { // veririca se há valores a serem atualizados
// Atualiza os valores no card.
card.nextStudyDay = Scripts.incrementDate(data: card.nextStudyDay, val: days[0])
card.lastDaysIncremented = days[1]
}
}
}
Exemplo de solução :
print("0 - Não Aprendi | 1 - Revisar | 2 - Aprendi ")
if let val = readLine(),let valInt = Int(val) { // Lê a opção do usuário.
//código aqui
} else {
print("Entrada invalida!")
}
Nessa parte do código, não há um tratamento caso o usuário tente entrar com qualquer coisa que não seja um inteiro. Caso houvesse um tratamento o usuário teria uma melhor experiência.
Exemplo de solução :
Sugestão feita por Rudigus e Nathália.