我有一个问题,我在标题中提到过,只需要一些帮助来解决这个恼人的错误。
这是我的代码:
bool moreEmp;
int arrayplus;
string doitagain;
arrayplus = -1;
string[,] employees = new string[10, 10];
do
{
arrayplus++;
Console.WriteLine("please enter your employee's number");
employees[0, arrayplus] = Console.ReadLine();
Console.ReadLine();
Console.WriteLine("please enter your employee's name");
employees[1, arrayplus] = Console.ReadLine();
Console.ReadLine();
Console.WriteLine("please enter your employee's age");
employees[2, arrayplus] = Console.ReadLine();
Console.ReadLine();
Console.WriteLine("please enter your employee's official position ");
employees[3, arrayplus] = Console.ReadLine();
Console.ReadLine();
Console.WriteLine("please enter your employee's salary");
employees[4, arrayplus] = Console.ReadLine();
Console.ReadLine();
Console.WriteLine("Do you want to add more employees into this list? y or n.");
doitagain = Console.ReadLine();
if (doitagain == "y" || doitagain == "Y")
{
moreEmp = true;
}
else if (doitagain == "n" || doitagain == "N")
{
moreEmp = false;
}
else
{
Console.WriteLine("You have entered an invalid information");
}
}
while (moreEmp == true);
所以我实际上用我的if语句分配了bool变量,我仍然不知道为什么我这样做了这样的错误。感谢您阅读我的问题,希望您能帮助我:D。
答案 0 :(得分:1)
您可以在if
和else if
中分配值,但不能在else
子句中分配值。如果最终else
被命中,则该值永远不会分配给该变量。
查看代码时,可能会在true
中为其分配else
值。这将为你解决问题。
答案 1 :(得分:1)
问题出在else
块中,当doitagain
既不是n/N
还是y/Y
时,您如何处理?
所以要么使用这个
else
{
moreEmp = false; //Set this as your requirement
Console.WriteLine("You have entered an invalid information");
}
或者
bool moreEmp = false;
do{
if (doitagain == "y" || doitagain == "Y")
{
moreEmp = true;
}
}while(moreEmp);