如何根据条件向数组添加元素
本文关键字:数组 添加 元素 条件 何根 | 更新日期: 2023-09-27 18:33:08
我正在研究这个简单的 C# 程序,将元素添加到数组中。我允许用户输入 5 个数字,如果用户输入无效有效,我有一条消息。我的问题是,无论用户是否输入无效数字,我仍然想在我的数组中添加 5 个数字。
我的代码有效,但是假设用户输入 3 个数字,然后输入 2 个单词,我最终只有 3 个数字,但无论如何我都想要 5 个数字。我做错了什么?
这是我的代码:
int[] numbers = new int[5];
for (int i = 0; i < 5; i++)
{
Console.WriteLine("Enter a number: ");
string c = Console.ReadLine();
int value;
if (int.TryParse(c, out value))
{
numbers[i] = value;
}
else
{
Console.WriteLine("You did not enter a number'n");
}
}
for (int i = 0; i < numbers.Length; i++ )
{
Console.Write(numbers[i] + " ");
}
当用户输入错误/无数字时,您可以将增量计数减少 1。
另请注意,您当前的代码仅读取 4(而不是问题描述所说的 5)数字的输入。
int[] numbers = new int[4];
for (int i = 0; i < 4; i++)
{
Console.WriteLine("Enter a number: ");
string c = Console.ReadLine();
int value;
if (int.TryParse(c, out value))
{
numbers[i] = value;
}
else
{
i--;
Console.WriteLine("You did not enter a number'n");
}
}
for (int i = 0; i < numbers.Length; i++ )
{
Console.Write(numbers[i] + " ");
}
尝试使用do-while
int[] numbers = new int[4];
int i = 0;
do
{
Console.WriteLine("Enter a number: ");
string c = Console.ReadLine();
int value;
if (int.TryParse(c, out value))
{
numbers[i] = value;
i++;
}
else
{
Console.WriteLine("You did not enter a number'n");
}
} while (i < 5);
Console.WriteLine("'nYour entered numbers are'n");
for (int j = 0; j < numbers.Length; j++ )
{
Console.Write(numbers[j] + " ");
}
你可以在这里使用 while 循环。请参阅以下代码
int[] numbers = new int[5];
int i = 0;
while (i < 5) {
Console.WriteLine ("Enter a number: ");
string c = Console.ReadLine ();
int value;
if (int.TryParse (c, out value)) {
numbers[i] = value;
i++;
} else {
Console.WriteLine ("You did not enter a number'n");
}
}
for (i = 0; i < numbers.Length; i++) {
Console.Write (numbers[i] + " ");
}
您可以使用while
循环减少代码。此外,最好将最后一个for
循环更改为foreach
int[] numbers = new int[5];
int i = 0;
while (i < 5)
{
Console.WriteLine("Enter a number: ");
string c = Console.ReadLine();
int value;
if (!int.TryParse(c, out value)) continue;
numbers[i] = value;
i++;
}
foreach (int t in numbers)
Console.Write(t + " ");