Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/react-native/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 数一数_C#_String_Count_Integer - Fatal编程技术网

C# 数一数

C# 数一数,c#,string,count,integer,C#,String,Count,Integer,我的代码是: int num = 10; int result; for (int i = 1; i < num; i++) { result = i + num - 1; label1.Text = Convert.ToString(result); } 我应该检索result=1+2+3+4+5+6+7+8+9,但我没有检索到它。您需要在for循环中按I递增result,并在for循环后设置label1.Text。试试这个: int num = 10; i

我的代码是:

int num = 10;
int result;
for (int i = 1; i < num; i++)
  {
     result = i + num - 1;
     label1.Text = Convert.ToString(result);
  }
我应该检索result=1+2+3+4+5+6+7+8+9,但我没有检索到它。

您需要在for循环中按I递增result,并在for循环后设置label1.Text。试试这个:

int num = 10;
int result;
for (int i = 1; i < num; i++)
{
    result += i;
}
label1.Text = Convert.ToString(result);

在等号前面加上加号

label1.Text +=  + Convert.ToString(result) + "+";

埃卡德的答案是正确的。您还可以做一些轻微的更改:

int num = 10;
int result;
for (int i = 1; i < num; i++)
{
    result += i;
}
label1.Text = result.ToString();

构建字符串时,请尝试始终使用StringBuilder。按如下方式更改代码:

int num = 10;
int result;
string delimiter = "";
StringBuilder textForLabel = new StringBuilder();
for (int i = 1; i < num; i++)
{
   result = i + num - 1;
   textForLabel.Add(delimiter + result);
   delimiter = ", ";
}
label1.Text = textForLabel.ToString();
这将输出label1.Text为、10、11、12等

我不会给出1到9之和的代码,但你应该可以从这里算出


编辑,我认为user2720372对您的答案有最好的解决方案。

label1.Text将在每次迭代时被覆盖,这是问题之一。我不明白。在这种情况下,如何获得从1到9的数字之和?设置断点,运行代码,查看代码行为。您将看到每次迭代的值,并尝试思考您可以更改什么以获得所需的总和。它给我18而不是45,因此它不会创建1+2+3+4+5+6+7+8+9,因为每次循环迭代的结果都会被覆盖,9+10-1=18。我认为是textForLabel.Append not.add这不起作用:代码中的+太多了。B代码输出1+2+3+,而不是1+2+3+,因此最后一个+太多
int num = 10;
int result;
string delimiter = "";
StringBuilder textForLabel = new StringBuilder();
for (int i = 1; i < num; i++)
{
   result = i + num - 1;
   textForLabel.Add(delimiter + result);
   delimiter = ", ";
}
label1.Text = textForLabel.ToString();