c# - 循环中的 TryParse 处理
问题描述
我TryParse
用来检查用户是否在循环中输入整数,如果用户输入任何字符或非整数值,用户将收到无效消息,循环进入下一次迭代。
我希望用户重新输入相同的迭代。
int[] number = new int[5];
int newSum = 0;
int outValue;
Console.Write("Enter Five Integer Digits: \n");
for (int i = 0; i <= number.Length - 1; i++)
{
Console.Write("Number {0}: ", i);
bool Parse = Int32.TryParse(Console.ReadLine(), out outValue);
if (Parse)
{
number[i] = outValue;
}
else
{
Console.WriteLine("You Have Entered InValid Format: ");
}
newSum += number[i];
}
Console.WriteLine("Sun of Numbers :{0}", newSum);
I expected the output to be
Number 2: h
You Have Entered InValid Format:
Number 2:
But the actual output is
Number 2: h
You Have Entered InValid Format:
Number 3:
解决方案
我会用以下方式重写你的循环:
for (int i = 0; i <= number.Length - 1; i++)
{
Console.Write("Number {0}: ", i);
bool Parse = Int32.TryParse(Console.ReadLine(), out outValue);
if (Parse)
{
// if parsing is successfull, then add to array and to sum :)
number[i] = outValue;
newSum += number[i];
}
else
{
Console.WriteLine("You Have Entered InValid Format: ");
// just decrement iterator to repeat this iteration
i--;
}
}
推荐阅读
- java - 打印并行运行的多个 SSH 命令的输出
- java - 如何将最后添加的文档放在recyclerview的底部?
- javascript - 如何在 DataTables 中将过滤类型从 LIKE 更改为 EQUAL
- c# - 无法使垂直滚动条在用户控件中始终可见
- android - 在firebase数据库中,我可以存储项目符号,其他符号吗?如果是,如何?
- python - selenium instagram bot,但 xpath 不工作
- python - 一个单元格python中的PDF数据到csv
- amazon-web-services - 包装 S3 URL 并从下载文件中删除 S3 url
- asp.net - 实体框架 - “上下文正在代码优先模式下使用,代码是从 EDMX 文件生成的......”
- git - AndroidStudio 提交更改不显示其他模块 git