Ошибка ввода в Dart
Если ждут целое, а вводят слово,
перевод не удается. int.tryParse
возвращает null и не останавливает
программу. Тип int? держит либо
целое, либо null. Это не тот
null, которым readLineSync
отмечает конец ввода.
Проверка стоит вокруг результата. При неудаче выполняется ветка с сообщением:
import 'dart:io';
void main() {
print("enter number:");
String? line = stdin.readLineSync();
if (line == null) {
return;
}
int? val = int.tryParse(line);
if (val == null) {
print("bad");
} else {
print(val);
}
}
Для дробного числа тот же прием
делает double.tryParse. При ошибке
он тоже возвращает null.
Прочитайте целое. Если ввод не удался,
выведите bad. Иначе выведите число.
Прочитайте дробное. Если ввод не удался,
выведите bad. Иначе выведите число.