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

Dart中如何接收用户输入值并存储到二维数组

Dart 接收用户输入存储到二维数组实现方法

你现有代码只需要补全双层循环内的行初始化、单值读取、行入列的逻辑即可,注意使用输入相关方法前需要先导入dart:io库。

完整可运行代码

import 'dart:io';

void main() {
  print('enter the limit');
  // 读取方阵维度,加空值/非法输入兜底避免程序崩溃
  var limit = int.tryParse(stdin.readLineSync() ?? '') ?? 0;
  List<List<int>> lisst = [];

  for (var i = 0; i < limit; i++) {
    // 每轮外层循环初始化当前行的一维数组
    List<int> currentRow = [];
    for (var j = 0; j < limit; j++) {
      print('输入第${i + 1}行第${j + 1}列的整数:');
      // 读取单值做类型转换,非法输入默认存0
      int value = int.tryParse(stdin.readLineSync() ?? '') ?? 0;
      currentRow.add(value);
    }
    // 当前行所有元素读取完成后,加入二维数组
    lisst.add(currentRow);
  }

  // 打印存储结果校验
  print('存储完成的二维数组:');
  lisst.forEach(print);
}

核心逻辑说明

  • 外层循环对应二维数组的行维度,每次进入外层循环先新建一个空的一维列表承载当前行的所有元素
  • 内层循环对应每行的列维度,每次循环读取用户输入的整数值,追加到当前行的一维列表中
  • 内层循环执行完毕代表当前行所有元素读取完成,将整行列表追加到最外层的二维数组中
  • 不建议直接使用int.parse(stdin.readLineSync()!)的写法,一旦用户输入空内容、非数字内容会直接触发运行时错误,用int.tryParse搭配空值兜底鲁棒性更强

内容的提问来源于stack exchange,提问作者yadhu

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 18:33:31