gpt4 book ai didi

c# - 在 C# 上添加整数列表

转载 作者:太空宇宙 更新时间:2023-11-03 18:21:18 25 4
gpt4 key购买 nike

我正在做一个练习,要求我让某人输入一个数字列表,然后当他们输入“确定”时,程序会添加他们输入的数字列表。现在,无论添加多少个数字,我的程序都返回 0。我怀疑问题出在最后 3 行代码,但无法弄清楚我做错了什么。抱歉代码效率低下。这只是我学习的第三天,所以我正在尝试以一种对我有意义的方式对其进行格式化,不过我知道还有更有效的方法可以做到这一点。

static void Main(string[] args)
{
bool isOk = new bool();
bool isNumber = new bool();

var listOfNumbers = new List<string>();
var text = "0";

int ignoreMe = new int();
int sumOfNumbers = new int();
int numberNum = new int();
var listOfNumbersNum = new List<int>();

while (!isOk)
{
Console.WriteLine("Enter a number, or ok to finish");
text = Console.ReadLine();
bool IsNumber = Int32.TryParse(text, out ignoreMe);
if (isNumber)
{
numberNum = Int32.Parse(text);
listOfNumbersNum.Add(numberNum);
}
else
{
if (text.Equals("ok", StringComparison.OrdinalIgnoreCase))
{
sumOfNumbers = listOfNumbersNum.Sum();
Console.WriteLine(sumOfNumbers);
isOk = true;
}
}
}
}

最佳答案

你的问题在这里:

bool IsNumber = Int32.TryParse(text, out ignoreMe);

if (isNumber)
{
// rest of code omitted

您正在创建一个名为 IsNumber 的新变量来捕获 int.TryParse 的返回值,但您正在检查原始变量 的值isNumber 在您的 if 条件中。相反,您应该将结果分配给原始变量:

isNumber = Int32.TryParse(text, out ignoreMe);

if (isNumber)
{
// rest of code omitted

请注意,您实际上根本不需要声明变量来捕获此结果,因为您只使用它一次。您可以将 TryParse 调用放在 if 条件中:

if (Int32.TryParse(text, out ignoreMe))
{
listOfNumbersNum.Add(ignoreMe);
}
// Console.ReadLine() will never return null, so you can remove that check
else if (text.Equals("ok", StringComparison.OrdinalIgnoreCase))
{
// And since you only use sum once, you don't need to capture it in a variable
Console.WriteLine("Result of sum: " + listOfNumbersNum.Sum());
isOk = true;
}

关于c# - 在 C# 上添加整数列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52561644/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com