【发布时间】:2021-11-30 18:28:53
【问题描述】:
所以,长话短说,我想把缺席的人只导入缺席名单,每次我尝试这样做时,它都会从学生名单中导入所有人,所以没有多大帮助;
这样在最后我可以清除并显示每个学生的出勤颜色,如果他们缺席,则为红色,如果他们在场,则为绿色
提前 :)
using System.Collections.Generic;
namespace HelloWorld
{
class Hello
{
static void Main(string[] args)
{
List<string> students = new List<string>(5);
students.Add("Obama Ojane");
students.Add("Yarik Ze");
students.Add("Allen O'neill");
students.Add("Naveen Sharma");
students.Add("Monica Rathbun");
students.Add("David McCarter");
students.Add("Zayne Pan");
students.Add("Rah");
int v = 0;
int abs = 0;
int pres = 0;
List<string> absent = new List<string>(5);
List<string> present = new List<string>(5);
foreach (string a in students)
{
Console.Write(students[v] + ": ");
string attendance = Console.ReadLine();
if (attendance == "absent" || attendance == "abs" || attendance == "a")
{
abs++;
absent.Append(attendance);
String studentNameA = students[v];
absent.Add(studentNameA);
}
if (attendance == "present" || attendance == "pres" || attendance == "p")
{
pres++;
present.Append(attendance);
String studentNameP = students[v];
absent.Add(studentNameP);
}
v++;
}
Console.WriteLine();
Console.Clear();
Console.WriteLine("total present: " + pres);
Console.WriteLine("total absent: " + abs);
Console.WriteLine("total students: " + (abs+pres));
Console.ForegroundColor = ConsoleColor.Red;
for (int i = 0; i < absent.Count; i++)
{
Console.WriteLine(absent[i]);
}
Console.ForegroundColor = ConsoleColor.Green;
for (int i = 0; i < present.Count; i++)
{
Console.WriteLine(present[i]);
}
}
}
}
【问题讨论】:
-
你很清楚在“现在”的情况下有
absent.Add(studentNameP);,这不可能是正确的 -
这是开始使用调试器的好机会。使用调试器,您可以暂停代码的执行并逐行执行该执行,观察确切的运行时行为以及变量如何随每一行代码变化。当您这样做时,哪个特定操作首先会产生意想不到的结果?该操作中使用的值是什么?结果如何?预期的结果是什么?为什么?