C# 如何提示用户输入可变数量的值
最近了解了params以及在方法中使用它的目的,我创建了这个:C# 如何提示用户输入可变数量的值,c#,methods,C#,Methods,最近了解了params以及在方法中使用它的目的,我创建了这个: public int add(params int[] args) { int Total = 0; for (int i = 0; i < args.Length; i++) { Total += args[i]; } return Total; } 但如果我想传递未知数量的用户输入,该怎么办 大概是这样的: Console.WriteLine(n.add(Con
public int add(params int[] args)
{
int Total = 0;
for (int i = 0; i < args.Length; i++)
{
Total += args[i];
}
return Total;
}
但如果我想传递未知数量的用户输入,该怎么办
大概是这样的:
Console.WriteLine(n.add(Convert.ToInt32(Console.ReadLine()),Convert.ToInt32(Console.ReadLine())));
问题是这样我必须编写Convert.ToInt32(Console.ReadLine())代码>很多次
有没有更好的办法?例如,如果用户输入3个数字,它会将它们相加,但如果下一次用户输入5个数字,它会将其相加……等等。听起来您想要做的是让用户在程序运行时输入数字,并在用户“完成”时停止。你必须有某种退出条件。用户输入“=”或告诉程序用户已输入要添加的数字
int Sum=0;
string s="0";
while (!s.Equals("=")) {
Sum += Convert.ToInt16(s);
Console.Write("Type a number (Enter = to get the sum): ");
s = Console.ReadLine();
}
Console.WriteLine("The sum is " + Sum.ToString());
听起来您想要做的是让用户在程序运行时输入数字,并在用户“完成”时停止。你必须有某种退出条件。用户输入“=”或告诉程序用户已输入要添加的数字
int Sum=0;
string s="0";
while (!s.Equals("=")) {
Sum += Convert.ToInt16(s);
Console.Write("Type a number (Enter = to get the sum): ");
s = Console.ReadLine();
}
Console.WriteLine("The sum is " + Sum.ToString());
params int[]
数组参数将采用一系列int
参数,或者采用一个int
数组(对于parmas对象[]
等,这是非常正确的)。因此,您可以向add(params int[]args)
方法传递任意大小的int数组:
var a = new [] { 1, 2, 3 };
add(a);
实际上,这就是你如何在你的案例中使用它。您可以将任意数量的整数添加到列表
,然后将其转换为数组:
List<int> ints = new List<int>();
while (true) {
var s = Console.ReadLine(s);
int n;
if (Int32.TryParse(s, out n)) {
ints.Add(n);
} else {
break;
}
}
int sum = add(ints.ToArray());
params int[]
数组参数将采用一系列int
参数,或者采用一个int
数组(对于parmas对象[]
等,这是非常正确的)。因此,您可以向add(params int[]args)
方法传递任意大小的int数组:
var a = new [] { 1, 2, 3 };
add(a);
实际上,这就是你如何在你的案例中使用它。您可以将任意数量的整数添加到列表
,然后将其转换为数组:
List<int> ints = new List<int>();
while (true) {
var s = Console.ReadLine(s);
int n;
if (Int32.TryParse(s, out n)) {
ints.Add(n);
} else {
break;
}
}
int sum = add(ints.ToArray());
不知道我是否明白你在问什么。add函数接受一个int数组,因此传入任意数量的参数都可以。如果您希望最小化将参数传递给中的add函数所需的转换量,您可以让add函数在add函数的for循环中接受字符串数组并解析为int。是否希望用户输入类似于12 5 24 17
的内容,然后生成总数?这与您目前得到的答案不同。不确定我是否理解您在这里提出的问题。add函数接受一个int数组,因此传入任意数量的参数都可以。如果您希望最小化将参数传递给中的add函数所需的转换量,您可以让add函数在add函数的for循环中接受字符串数组并解析为int。是否希望用户输入类似于12 5 24 17
的内容,然后生成总数?这与您当前得到的答案不同。