diegoRodicio

View Categories

✅ Validar a entrada por teclado

Tempo de lectura estimado: < 1 minutos

Contido deste apartado:

✅ Ler non é o mesmo que validar

Se pedimos unha nota enteira entre 0 e 10, temos que comprobar dúas cousas: que o texto sexa un enteiro e que estea nese intervalo.

Neste exemplo repetimos a pregunta ata obter unha nota válida. Se remata a entrada, saímos do programa. return dentro de main() remata esa función.

import 'dart:io';

void main() {
  while (true) {
    stdout.write('Nota de Xurxo (enteiro de 0 a 10): ');
    String? texto = stdin.readLineSync();

    if (texto == null) {
      print('Rematou a entrada');
      return; // Evitamos seguir preguntando se xa non hai entrada.
    }

    int? nota = int.tryParse(texto.trim());
    if (nota == null) {
      print('Escribe un número enteiro');
      continue; // Volvemos ao principio do bucle.
    }

    if (nota < 0 || nota > 10) {
      print('A nota debe estar entre 0 e 10');
      continue;
    }

    print('Nota gardada: $nota');
    break; // Só chegamos aquí cando a nota é válida.
  }
}

while (true) repite sen límite por si só. Aquí controlamos a saída con break e return. Proba a escribir oito, deixar a liña baleira, introducir 12 e, por último, 8.

Non usamos ?? 0 para corrixir a nota: un dato incorrecto non significa que o alumno teña un cero.