如何在Dart中用一行代码判断变量的值不为整数?
Dart中判断变量是否非整数的实现方案
首先,你现有代码的问题在于:直接使用int.parse()时,如果输入不是整数会直接抛出FormatException导致程序崩溃,根本走不到后续的判断逻辑。正确的思路是先尝试解析输入字符串,根据解析结果判断是否为整数。
核心判断逻辑(一行实现)
使用int.tryParse(input) == null即可判断输入的字符串无法转换为整数(即不是整数)。int.tryParse()和int.parse()的区别是:解析失败时前者返回null,后者直接抛出异常。
修正后的完整代码
import 'dart:io'; void main() { print("What's your cat's age?"); String? input = stdin.readLineSync(); // 判断输入不是整数的逻辑 if (int.tryParse(input!) == null) { print("Invalid age!"); return; // 非整数直接退出,避免后续逻辑执行 } int age = int.parse(input); if (age == 1) { print("15"); } else if (age == 2) { print("24"); } else if (age == 3) { print(24 + 4 * 2); } else if (age > 3) { print(24 + 4 * (age - 2)); } }
补充说明
- 先通过
int.tryParse()判断输入是否能转为整数,失败则直接提示错误并终止程序,避免后续无效逻辑。 - 把原来多个独立的
if改成else if更高效,避免多余的条件判断。 - 注意处理
stdin.readLineSync()返回的null情况(示例中用!强制非空,也可以添加空值判断进一步增强健壮性)。
内容的提问来源于stack exchange,提问作者someperson
相关产品推荐
相关产品推荐

