Я пытаюсь выучить c #, и в настоящее время я пытаюсь создать калькулятор, в котором вы можете ввести столько символов, сколько захотите, и он покажет вам окончательный результат ...
Для моегопример я буду использовать List<string> Statement = {"12", "/", "4", "*", "3"}
string numbers = "0123456789";
for (int i = 0; i < Statement.Count; i++)
{
if (!numbers.Contains(Statement[i][0]))
{
Statement[i] = Convert.ToString(Operations.Compute(Convert.ToInt32(Statement[i - 1]), Convert.ToInt32(Statement[i + 1]), Statement[i]));
Statement.RemoveAt(i - 1);
Statement.RemoveAt(i + 1);
i--;
}
}
Операции вычисляются:
class Operations
{
public static float Compute(float num1, float num2, string OpType)
{
if(OpType == "+") { return num1 + num2; }
if(OpType == "-") { return num1 - num2; }
if(OpType == "*") { return num1 * num2; }
if(OpType == "/") { return num1 / num2; }
return 0;
}
}
Когда я запускаю программу и перечисляю все элементы из Statement
с простым циклом foreach
, я ожидаючтобы вернуть 9 (так как 12/4 * 3 = 9).
Вместо этого перечисляются следующие три числа: 3, 4, 3
Кажется, что всегда вычисляются первые два числа изатем перечислите остальные.