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

使用累积算法拼接用户输入字符串时的重复问题排查

解决先修课程输出仅显示最后一门的问题

嘿,我完全懂你现在的困扰——程序跑起来没报错,但输出的时候只重复显示最后一门先修课程,这确实让人摸不着头脑!你推测的循环中对象值被覆盖完全正确,这是新手写循环时很容易踩的坑。

问题根源:用单个变量存储所有输入

通常出现这种情况,是因为你用了一个单独的变量来承接每一次输入的课程名称,每次循环都会把新输入的值覆盖掉旧的,最后自然只剩最后一次输入的内容。举个常见的错误示例(以Python为例):

# 错误写法:单个变量存储,导致覆盖
prereq_course = ""
num_prereqs = int(input("请输入先修课程数量:"))
for _ in range(num_prereqs):
    prereq_course = input("请输入先修课程名称:")
# 最终只会输出最后一门课程
print("先修课程列表:", prereq_course)

解决方案:用容器存储所有输入

你需要用一个**列表(或其他可变容器)**来保存每一门先修课程,每次循环把新输入的课程添加到容器里,而不是覆盖原有内容。修改后的代码示例:

# 正确写法:用列表存储所有课程
prereq_list = []
num_prereqs = int(input("请输入先修课程数量:"))
for _ in range(num_prereqs):
    course_name = input("请输入先修课程名称:")
    prereq_list.append(course_name)
# 将列表转为单行字符串输出,用逗号分隔
print("先修课程列表:", ", ".join(prereq_list))

其他语言的思路参考

如果是Java、C#这类语言,逻辑是一样的:

  • Java:使用ArrayList<String>代替单个String变量,每次调用add()方法添加课程
  • C#:使用List<string>,通过Add()方法存入每门课程
    最后再通过字符串拼接的方式把列表内容转为单行输出。

这样修改后,程序就能正确输出所有先修课程的单行列表啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 07:19:17