C#Winforms - 我的应用程序正在打印两个数字,但我只想打印一个

时间:2016-06-06 01:51:51

标签: c# winforms

所以我做了一个“编程语言”,我可以设置变量,如字符串和整数,我可以将它们打印出来,我正在努力添加它们,这是要添加的代码:

if (line.Contains("%"))
{
    string name1 = line.Substring(line.IndexOf('%') + 1).Split('+')[0];
    string name2 = line.Substring(line.IndexOf('+') + 1).Split(';')[0];

    int value1 = 0;
    int value2 = 0;

    foreach (KeyValuePair<string, int> kvp in integers)
    {
       if (name1 == kvp.Key)
       {
           value1 = kvp.Value;
       }

       if (name2 == kvp.Key)
       {
           value2 = kvp.Value;
       }

       int answer = value1 + value2;

       Console.WriteLine(answer);
    }
}

这就是代码的工作方式:

&num1=1; &num2=2; %num1+num2;

出来的是:

1 3

代码有效,但是它打印了value1的值,我认为它因为变量value2为0而且它加1 + 0然后它设置它然后加1 + 2,但这不会对我来说很有意义,所以我真的不知道它有什么问题。

BTW:&amp;是整数,$是字符串。

1 个答案:

答案 0 :(得分:3)

这是因为你的Console.WriteLine在你的内部循环。将其更改为以下问题以解决该问题:

int answer = 0;
foreach (KeyValuePair<string, int> kvp in integers)
{
   if (name1 == kvp.Key)
   {
       value1 = kvp.Value;
   }

   if (name2 == kvp.Key)
   {
       value2 = kvp.Value;
   }

   answer = value1 + value2;           
}
Console.WriteLine(answer);