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

C#调用CreateStudentList方法未触发学生信息输入提示是什么原因

错误原因

你的代码调用逻辑没有问题,问题出在CreateStudentList方法的循环初始条件设置错误:
你在方法内将控制循环的变量r初始化为空字符串"",而while循环的触发条件是r == "Y",第一次判断时条件就不成立,所以循环内的输入逻辑完全不会执行,方法直接返回了空列表,自然没有输入流程触发。

修复方案

推荐使用do-while循环改写逻辑,保证至少执行一次输入操作,符合常规使用场景:

static List<Student> CreateStudentList()
{
    List<Student> studentlist = new List<Student>();
    Student objStudent;
    string r;
    // 先执行一次输入逻辑,再判断是否继续
    do
    {
        Console.Write("Enter name:");
        string n = Console.ReadLine();
        Console.WriteLine("Enter GPA:");
        float g = float.Parse(Console.ReadLine());

        objStudent = new Student(n, g);
        studentlist.Add(objStudent);

        Console.Write("Do you want to continue? (Y/N): ");
        r = Console.ReadLine()?.Trim().ToUpper() ?? "";
    } while (r == "Y");
    return studentlist;
}

如果你想继续使用while循环,只需将r的初始值改为"Y"即可:

string r = "Y";
while (r == "Y")
{
    // 原有逻辑不变
}
可选优化点
  • 输入判断时添加ToUpper()可以兼容用户输入小写y的场景
  • 可以增加输入合法性校验,避免GPA输入非数字时程序崩溃

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 15:06:00