很抱歉,如果没有以最佳方式解释,但我基本上想要做的是显示我创建的计算的输出。计算是古埃及的乘法(我给了一个故事创建一个程序,用户可以选择使用这种方法计算值,并注意我们没有大声使用*和/运算符)我希望能够显示正在使用的权力,计算的值和总体结果。如果可能的话,我想将所有这些输出都返回到一个弹出框中,但我不确定如何看待它,因为我是C#(Apprentice)的新手。
以下是我想要输出
的示例Powers: 1 + 4 + 8 = 13
Values: (1 * 238) + (4 * 238) + (8 * 238)
Result: 238 + 952 + 1904 = 3094
以下是古代egyption乘法我现在的代码: 注意iReturnP = Power,iReturnN = Values,iReturn = Result
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace SimpleMath
{
public class AEM : IOperation
{
public int Calculate(int i, int j)
{
int[] ints = new int[] { i, j };
Array.Sort(ints);
List<int> powers = new List<int>();
int power = 1;
int first = ints[0];
int iReturn = 0;
int iReturnP = 0;
int iReturnN = 0;
do
{
powers.Add(power);
power = new Multiply().Calculate(power, 2);
} while (power <= first);
iReturnP += first;
while (first > 0)
{
int next = powers.LastOrDefault(x => x <= first);
first -= next;
int powertotal = new Multiply().Calculate(next, i);
iReturnN += next;
iReturn += powertotal;
}
return iReturnP;
return iReturnN;
return iReturn;
}
}
}
答案 0 :(得分:0)
运行return
语句后,将退出该方法。这意味着您的第2和第3 return
语句永远不会发生。如果您真的想使用return
语句,我建议您返回包含所有3个值的int[]
。还有很多其他方法可以解决这个问题。请注意,这只会为您提供总计。我会帮你的,但你必须自己做一些工作。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace SimpleMath
{
public class AEM : IOperation
{
public static int[] Calculate(int i, int j)
{
int[] ints = new int[] { i, j };
Array.Sort(ints);
List<int> powers = new List<int>();
int power = 1;
int first = ints[0];
int iReturn = 0;
int iReturnP = 0;
int iReturnN = 0;
do
{
powers.Add(power);
power = new Multiply().Calculate(power, 2);
} while (power <= first);
iReturnP += first;
while (first > 0)
{
int next = powers.LastOrDefault(x => x <= first);
first -= next;
int powertotal = new Multiply().Calculate(next, i);
iReturnN += next;
iReturn += powertotal;
}
return new int[]{iReturnP, iReturnN, iReturn};
}
}
}
然后在你调用的方法中计算:
int[] results = AEM.Calculate(i, j);
MessageBox.Show("Powers: " + results[0] + "\r\n Values: " + results[1] + "\r\n Results: " + results[2]);