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

将Pascal代码转Dart时循环累加失效,求解决建议

Dart分数累加问题修复方案

问题根源

  1. 变量遮蔽:在for循环内部,你重新声明了pscore1和Totscore1变量,这会创建仅在循环内生效的局部变量,完全和外层的总分变量无关,导致外层的Totscore1始终保持初始值0。
  2. 缺少第二支队伍的分数累加逻辑。

修正后的代码

import "dart:io";

void main() {
  // 初始化两支队伍的总分
  double totScore1 = 0;
  double totScore2 = 0;

  // 获取队伍名称
  print('Enter team 1 name');
  String? teamOneName = stdin.readLineSync();

  print('Enter team 2 name');
  String? teamTwoName = stdin.readLineSync();

  // 累加队伍1的5个球员分数
  for (int i = 0; i < 5; i++) {
    print('Enter team 1 player ${i+1} score');
    // 直接读取输入并累加到总分,无需额外局部变量
    totScore1 += double.parse(stdin.readLineSync()!);
  }

  // 累加队伍2的5个球员分数
  for (int i = 0; i < 5; i++) {
    print('Enter team 2 player ${i+1} score');
    totScore2 += double.parse(stdin.readLineSync()!);
  }

  // 输出结果
  print('${teamOneName ?? "Team 1"} total score: $totScore1');
  print('${teamTwoName ?? "Team 2"} total score: $totScore2');
}

关键修改说明

  • 移除循环内的变量声明,直接使用外层的总分变量进行累加操作(用+=简化代码)
  • 添加了第二支队伍的分数输入和累加逻辑
  • 优化了提示文本,明确显示当前输入的是第几个球员的分数
  • 处理了队伍名称为null的情况(使用??提供默认值)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 13:31:06