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
相关产品推荐
相关产品推荐

