You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 17:03:13