我的名字和其他区域出现错误,我不知道这是一个基本的逻辑错误还是我的概念。在我的PromptName()中,它似乎没有与我的Display(index,searchingName)一起撤回任何东西;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Seven
{
class Seven
{
static void Main(string[] args)
{
// IMPORTANT CODE REQUIREMENT: In the following list declaration,
// the order of the items in firstNames
// cannot be "manually" changed.
// ------------------------------------------------
List<string> firstNames = { "Johnny", "Alice", "Cory",
"Steve", "Dennis" };
// ------------------------------------------------
int index;
string searchedName = PromptName();
while (searchedName.Equals("end"))
{
index = firstNames.BinarySearch(serchedName);
Display(index, searchedName);
}
Console.Read();
}
private void Display(int index, string name)
{
Console.WriteLine();
if (index >= 0)
{
Console.WriteLine("Yes, {0} is in our course.", searchedName);
}
else
{
Console.WriteLine("No, {0} is not in our course.", name);
}
Console.Write("");
}
private string PromptName()
{
Console.Write("To terminate the program, enter 'end' for the student name.");
Console.Write("Enter the first name of the student to be searched in our course: ");
return Console.ReadLine();
}
}
}
答案 0 :(得分:2)
除非PromptName() 返回&#34;结束&#34;
,否则您的while
循环不会执行
更改
while (searchedName.Equals("end"))
到
while (!searchedName.Equals("end"))
您还有一个问题,即您不会再次提示输入新名称。在调用Display()后立即在while循环结束时执行此操作。
这是使用调试器轻松解决的问题类型。如果您还没有学会如何在您的环境中使用它,我建议优先考虑它。您投入学习调试的时间很快就能收回成本。
<强>更新强>
我刚注意到您的列表未正确声明。它应该是
List<string> firstNames = new List<string>() { "Johnny", "Alice", "Cory",
"Steve", "Dennis" };
答案 1 :(得分:0)
您可能已经知道这一点,但在第25行有一个拼写错误:
第25行:index = firstNames.BinarySearch(serchedName);
应该搜索serchedName名称