我正在完成大学任务,而且我的阵列遇到了一些问题。
我正在构建一个基于控制台的地址簿应用程序,我需要使用2D数组,它可以选择添加,删除或打印数组的内容......
我正在删除当前条目,将值替换为" XXX" -as是简要说明。然后我隐藏了" XXX"打印到屏幕时的值。
但是,一旦我删除了'一个条目,当涉及到打印整个数组时,我试图删除的条目之后列出的任何内容都没有显示,除非添加了新条目。
有人能说清楚为什么会这样吗?
答案 0 :(得分:0)
在您的代码中,一旦if语句捕获到真实条件,您将删除整个列,例如如果address[1, 1] == DeleteName
那么for循环之后的数组将如下所示:
A00 XXX A02 ...
A10 XXX A13 ...
A20 XXX A23 ...
A30 XXX A33 ...
... ...
因此,如果您只需删除一个条目,则需要两个循环:
for (int i = 0; i < 5; i++)
{
for(int j =0;j < 5; j++)
{
if (Address[i, j] == DeleteName)
{
Address[i, j] = "XXX";
Console.WriteLine("Contact Deleted");
}
}
}
答案 1 :(得分:0)
另外,在你的情况3中,看起来你错过了你的else语句之后的{}
else
{
FName = Address[i, 0];
LName = Address[i, 1];
Number = Address[i, 2];
Road = Address[i, 3];
Town = Address[i, 4];
Console.WriteLine(LName +", " + FName + " - "+ Number + ", " + Road+", " + Town);
}