使用用户输入创建一个数组 [英] Create an array with user's input
本文介绍了使用用户输入创建一个数组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想创建一个循环,它只持续到用户给出正确的输入。
需求是:
数字应该介于1到100之间输入的数字不应与之前相同。
我尝试过:
I want to create a loop that only last until the right input is given by the user.
Requriments are:
The number should be between 1 t0 100 and the number entered should not be same as previous.
What I have tried:
for (int i = 0; i < Number.Length; i++)
{
Console.WriteLine("Enter number 1. The number must be between 1-100");
Number[i] = Int32.Parse(Console.ReadLine());
if (Number[i] < 1)
{
Console.WriteLine("Please reenter number. The number must be between 1-100");
}
else if (Number[i] > 100)
{
Console.WriteLine("Please reenter number 1. The number must be between 1-100");
}
else
{
//store the value in the array
Number[i] = Number[i];
}
}
for (int i = 0; i < Number.Length; i++)
{
Console.WriteLine("Enter number 2. The number must be between 1-100");
Number[i] = Int32.Parse(Console.ReadLine());
if (Number[i] < 1)
{
Console.WriteLine("Number less than 1. Please reenter number 2.
The number must be between 100");
}
else if (Number[i] > 100)
{
Console.WriteLine("Please reenter number 2. The number must be between 1-100");
}
else if (Number[i] == Number[i])
{
Console.WriteLine("Numbers must be unique. It cannot match any of the pervisouly entered numbers");
}
else
{
Number[i] = Number[i];
}
}
for (int i = 0; i < Number.Length; i++)
{
Console.WriteLine("Enter number 3. The number must be between 1-100");
Number[i] = Int32.Parse(Console.ReadLine());
if (Number[i] < 1)
{
Console.WriteLine("Please reenter number 3. The number must be between 1-100");
}
else if (Number[i] > 100)
{
Console.WriteLine("Please reenter number 3. The number must be between 1-100");
}
else if (Number[i] == Number[i])
{
Console.WriteLine("Numbers must be unique. It cannot match any of the pervisouly entered numbers");
}
else
{
Number[i] = Number[i];
}
推荐答案
你的逻辑过于复杂。你可以在一个循环中完成所有操作。此外,您需要学习将逻辑封装到方法/函数/类中,以便重用代码并使其更具可读性。
Your logic is overly complicated. You can do all in one loop. Also you need to learn to encapsulate logic into methods/functions/classes in order to reuse code and make it more readable.
for (int i = 0; i < Number.Length; i++)
{
while (true) // loop until you have correct number
{
var number = ReadNumber();
if (IsValid(number))
{
Number[i] = number; // store if it's correct
break; // exit the inner while-loop as we have correct number
}
}
}
int ReadNumber()
{
Console.WriteLine("Enter number 1. The number must be between 1-100");
return Int32.Parse(Console.ReadLine());
}
bool IsValid(int number)
{
if (number < 1)
{
Console.WriteLine("Please reenter number. The number must be between 1-100");
return false;
}
if (number > 100)
{
Console.WriteLine("Please reenter number. The number must be between 1-100");
return false;
}
return true;
}
我没有通过编译器运行它,所以可能存在拼写错误。我也没有故意包括唯一性检查。试着自己解决这个问题,因为这是封装的另一个练习。
I didn't run this through compiler so there may be typos. I also didn't include uniqueness check on purpose. Try to figure that on your own as this is another exercise in encapsulation.
这篇关于使用用户输入创建一个数组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文