【发布时间】:2018-01-25 15:45:28
【问题描述】:
如何防止用户写入已存在于数组中的数字? 我试过这个:
int[] number = new int[5];
for ( int i=0; i<number.Length; i++)
{
Console.Write("Write a number : );
number[i] = int.Parse(Console.ReadLine());
int getindex = Array.IndexOf(number, number[i]);
if (number[i] == number[getindex])
Console.WriteLine("This number already exists");
}
但是在我第一次写它的时候,它说它已经存在,所以它不起作用。
【问题讨论】:
-
请贴出编译代码!
-
该 Array.IndexOf() 调用搜索整个数组,而不仅仅是已经输入的部分。所以你永远不能输入 0。ericlippert.com/2014/03/05/how-to-debug-small-programs
-
或者你可以在这里修正你的逻辑并且不将数字存储在数组中直到之后你已经测试了它是否存在于数组中?
-
@FrankerZ 在我的编辑中没有任何代码更改功能。我在 if 中添加了
{}以使其更好读。除非您在 C# 编译器中发现了使其功能不同的巨大缺陷?