我是C#和编程的新手,我有一个简单的问题要问你们,我已经搜索了一下,但发现了太复杂的例子让我在我的工作中实现所以这里是:< / p>
int[] newArray = new int[7];
Console.WriteLine("Hello! Please enter 7 numbers between 1-25, press ENTER after each number. ");
for (int i = 0; i < newArray.Length; i++)
bool loop = true;
do
{
try
{
newArray[i] = Convert.ToInt32(Console.ReadLine());
loop = false;
}
catch
{
Console.WriteLine("You may only enter numbers!");
}
} while (loop);
Console.Write("You entered the following numbers: ");
for (int i = 0; i < newArray.Length; i++)
{
Console.WriteLine(newArray[i]);
}
}
这是我试图编写的bingogame的第一部分,但我无法理解为什么名称循环而我不存在,我应该做一些静态的东西吗?移动一些括号?请帮忙。
答案 0 :(得分:1)
您需要将整个for
语句包装在大括号中,否则它只会执行下一行代码,这只是bool loop = true;
。
for (int i = 0; i < newArray.Length; i++)
{ // <-- Add this
bool loop = true;
do
{
try
{
newArray[i] = Convert.ToInt32(Console.ReadLine());
loop = false;
}
catch
{
Console.WriteLine("You may only enter numbers!");
}
} while (loop);
Console.Write("You entered the following numbers: ");
}
答案 1 :(得分:0)
在你的周期后立即制作一个单独的支架。
答案 2 :(得分:0)
你错过了一个开放式支架。这看起来像是作业,所以我不会为你重写它。仔细看看并处理格式和缩进。这将给你一个线索,是否应该是缺少的支撑。
答案 3 :(得分:0)
这是一种在没有try / catch
的情况下测试数字输入的更好方法var newArray = new int[7];
Console.WriteLine("Hello! Please enter 7 numbers between 1-25, press ENTER after each number. ");
for (var i = 0; i <= newArray.Length - 1; i++)
{
int number;
while (!int.TryParse(Console.ReadLine(), out number))
{
Console.WriteLine("You may only enter numbers!");
}
newArray[i] = Convert.ToInt32(number);
}
Console.WriteLine("You entered the following numbers: ");
foreach (var t in newArray)
{
Console.WriteLine(t);
}
答案 4 :(得分:0)
值得一提的是string.Join方法打印列表的所有元素。
Console.WriteLine("You entered the following numbers: ");
Console.WriteLine(string.Join(", ", newArray));
使用 Parse / TryParse 方法后,您不再需要使用Convert.ToInt32。
要验证号码并能够重新输入它,那么2 If会好得多 而是在枚举上使用Constains方法。
while (!int.TryParse(Console.ReadLine(), out number) || number < 1 || number > 25)
{
Console.WriteLine("You may only enter numbers from range 1-25!");
}