制作簡單計算器時用了老師講的基于C++的資料結構的思想,但是在編程的時候出現了 這樣的錯誤

private void btn_右括號_Click(object sender, EventArgs e)
{
textBox1.Text += ")";
bool flag = true;
OPND.Push(txtDisplay.Text);
txtDisplay.Text = "";
op2 = ")";
while (flag)
{
if (OPND.Count >= 2)
{
op1 = Convert.ToString(OPTR.Pop());
if (Isp(op1) > Icp(op2))
{
num2 = Convert.ToDouble(OPND.Pop());
num1 = Convert.ToDouble(OPND.Pop());
if (op1 == "+")
{
tempresult = num1 + num2;
}
else if (op1 == "-")
{
tempresult = num1 - num2;
}
else if (op1 == "×")
{
tempresult = num1 * num2;
}
else if (op1 == "÷")
{
tempresult = num1 / num2;
}
OPND.Push(Convert.ToString(tempresult));
}
else if (Isp(op1) == Icp(op2) )
{
flag = false;
}
}
這是運行出錯的地方,在點擊右括號后再按等號就出現這種錯誤。
因為沒學過C#,只學了C++,在網上找了半天,圖書館查書找也沒找到解決方法。
但是別的地方的強制轉化是沒有問題的,只有自己計算的結果再Push到堆疊后再Pop后強制轉化就出現這種問題
希望各位大佬為我這小白解決這個小問題。
uj5u.com熱心網友回復:
push一次pop兩次當然報錯轉載請註明出處,本文鏈接:https://www.uj5u.com/net/240710.html
標籤:C#
