C# 如何强制重复输入?
这段代码对我有效,只是它只检查一次重复,如果用户再次输入相同的整数,程序将在第二次接受它。如何使该程序无论用户输入多少次都不接受输入C# 如何强制重复输入?,c#,duplicates,user-input,C#,Duplicates,User Input,这段代码对我有效,只是它只检查一次重复,如果用户再次输入相同的整数,程序将在第二次接受它。如何使该程序无论用户输入多少次都不接受输入 int[] shippedOrderNumbers = new int[5]; Console.WriteLine("Please Input first Shipping Number: "); shippedOrderNumbers[0] = Convert.ToInt32(Console.ReadLine()
int[] shippedOrderNumbers = new int[5];
Console.WriteLine("Please Input first Shipping Number: ");
shippedOrderNumbers[0] = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Please Input second Shipping Number: ");
shippedOrderNumbers[1] = Convert.ToInt32(Console.ReadLine());
if (shippedOrderNumbers[0] == shippedOrderNumbers[1])
{
Console.WriteLine("A dublicate number is not allowed please try again: ");
shippedOrderNumbers[1] =Convert.ToInt32(Console.ReadLine());
}
Console.WriteLine("Please Input third Shipping Number: ");
shippedOrderNumbers[2] = Convert.ToInt32(Console.ReadLine());
if (shippedOrderNumbers[0] == shippedOrderNumbers[2] || shippedOrderNumbers[1] == shippedOrderNumbers[2])
{
Console.WriteLine("A dublicate number is not allowed please try again: ");
shippedOrderNumbers[2] = Convert.ToInt32(Console.ReadLine());
}
Console.WriteLine("Please Input fourth Shipping Number: ");
shippedOrderNumbers[3] = onvert.ToInt32(Console.ReadLine());
if (shippedOrderNumbers[0] == shippedOrderNumbers[3] || shippedOrderNumbers[1] == shippedOrderNumbers[3] || shippedOrderNumbers[2] == shippedOrderNumbers[3])
{
Console.WriteLine("A dublicate number is not allowed please try again: ");
shippedOrderNumbers[3] = Convert.ToInt32(Console.ReadLine());
}
Console.WriteLine("Please Input fifth Shipping Number: ");
shippedOrderNumbers[4] = Convert.ToInt32(Console.ReadLine());
if (shippedOrderNumbers[0] == shippedOrderNumbers[4] || shippedOrderNumbers[1] == shippedOrderNumbers[4] || shippedOrderNumbers[2] == shippedOrderNumbers[4] || shippedOrderNumbers[3] == shippedOrderNumbers[4])
{
Console.WriteLine("A dublicate number is not allowed please try again: ");
shippedOrderNumbers[4] = Convert.ToInt32(Console.ReadLine());
}
我认为使用通用列表比使用数组更好。您还可以通过使用简单的循环来简化代码。请参阅以下示例
IList<int> shippedOrderNumbers = new List<int>();
for (int = 0; i < 5; i++)
{
Console.WriteLine("Please input the Shipping Number: ");
int shippingNumber;
if (!Int.TryParse(Console.ReadLine(), out shippingNumber)
{
Console.WriteLine("Your shipping number is not an integer");
}
if (shippedOrderNumbers.Contains(shippingNumber))
{
Console.WriteLine("This shipping number has already been entered.");
}
else
{
shippedOrderNumbers.Add(shippingNumber);
Console.WriteLine("Thanks for submitting your shipping number.");
}
}
IList ShippedOrderNumber=新列表();
对于(int=0;i<5;i++)
{
Console.WriteLine(“请输入装运编号:”);
国际运输编号;
如果(!Int.TryParse(Console.ReadLine(),out shippingNumber)
{
Console.WriteLine(“您的发货编号不是整数”);
}
if(ShippedOrderNumber.Contains(shippingNumber))
{
Console.WriteLine(“已输入此装运编号”);
}
其他的
{
ShippedOrderNumber.Add(shippingNumber);
Console.WriteLine(“感谢您提交装运编号”);
}
}
另外,我在记事本中写了这篇文章,所以它可能不起作用,但应该给你一个解决问题的一般指南。我认为你最好使用一个通用列表而不是数组。你也可以通过使用一个简单的循环来简化你的代码。参考下面的例子
IList<int> shippedOrderNumbers = new List<int>();
for (int = 0; i < 5; i++)
{
Console.WriteLine("Please input the Shipping Number: ");
int shippingNumber;
if (!Int.TryParse(Console.ReadLine(), out shippingNumber)
{
Console.WriteLine("Your shipping number is not an integer");
}
if (shippedOrderNumbers.Contains(shippingNumber))
{
Console.WriteLine("This shipping number has already been entered.");
}
else
{
shippedOrderNumbers.Add(shippingNumber);
Console.WriteLine("Thanks for submitting your shipping number.");
}
}
IList ShippedOrderNumber=新列表();
对于(int=0;i<5;i++)
{
Console.WriteLine(“请输入装运编号:”);
国际运输编号;
如果(!Int.TryParse(Console.ReadLine(),out shippingNumber)
{
Console.WriteLine(“您的发货编号不是整数”);
}
if(ShippedOrderNumber.Contains(shippingNumber))
{
Console.WriteLine(“已输入此装运编号”);
}
其他的
{
ShippedOrderNumber.Add(shippingNumber);
Console.WriteLine(“感谢您提交装运编号”);
}
}
另外,我在记事本中写了这篇文章,所以它可能不起作用,但应该给你一个关于如何解决问题的一般指南。按照以下思路应该可以做到:
var shippedOrderNumbers = new List<int>();
var validOrderNumbers = 0;
while(validOrderNumbers < 5)
{
Console.WriteLine("Input order number:");
var nextOrderNumber = Convert.ToInt32(Console.ReadLine());
if(shippedOrderNumbers.Any(son => son == nextOrderNumber))
{
Console.WriteLine("Duplicate order number. Please enter another");
continue;
}
shippedOrderNumbers.Add(nextOrderNumber);
validOrderNumbers++;
}
var shippedOrderNumber=new List();
var validOrderNumbers=0;
while(ValidOrderNumber<5)
{
Console.WriteLine(“输入订单号:”);
var nextOrderNumber=Convert.ToInt32(Console.ReadLine());
if(ShippedOrderNumber.Any(son=>son==nextOrderNumber))
{
Console.WriteLine(“重复订单号。请输入另一个”);
继续;
}
ShippedOrderNumber.Add(nextOrderNumber);
validOrderNumbers++;
}
以下几点可以做到:
var shippedOrderNumbers = new List<int>();
var validOrderNumbers = 0;
while(validOrderNumbers < 5)
{
Console.WriteLine("Input order number:");
var nextOrderNumber = Convert.ToInt32(Console.ReadLine());
if(shippedOrderNumbers.Any(son => son == nextOrderNumber))
{
Console.WriteLine("Duplicate order number. Please enter another");
continue;
}
shippedOrderNumbers.Add(nextOrderNumber);
validOrderNumbers++;
}
var shippedOrderNumber=new List();
var validOrderNumbers=0;
while(ValidOrderNumber<5)
{
Console.WriteLine(“输入订单号:”);
var nextOrderNumber=Convert.ToInt32(Console.ReadLine());
if(ShippedOrderNumber.Any(son=>son==nextOrderNumber))
{
Console.WriteLine(“重复订单号。请输入另一个”);
继续;
}
ShippedOrderNumber.Add(nextOrderNumber);
validOrderNumbers++;
}
thx man但如果我只是将if改为while,它将为methx man完成工作,但如果我只是将if改为while,它将为我完成工作