- 締切済み
教えてください。Visual Basic 2010
教えてください。Visual Basic 2010で電卓でわからないところ Visual Basic 2010で四則演算ができる簡易電卓を 作っています。 下のソースは+,-.×,÷のボタンが押された時の処理なのですが、 3+6-3の計算が、0になってしまします 3+6-の時点で-3と表示されてしまいます。 str1は最初に入力された数値が保存されています。 Private Sub ButtonAdd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonAdd.Click flag = 1 Call kei() End Sub Private Sub ButtonSub_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonSub.Click flag = 2 Call kei() End Sub Private Sub ButtonMul_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonMul.Click flag = 3 Call kei() End Sub Private Sub ButtonDiv_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonDiv.Click flag = 4 Call kei() End Sub Private Sub kei() Dim c1 As Single If IsNumeric(str1) = True Then c1 = CSng(str1) Else Exit Sub End If str1 = "" Select Case flag Case 1 anser = anser + c1 Case 2 anser = anser - c1 Case 3 anser = anser * c1 Case 4 If c1 = 0 Then Exit Sub anser = anser / c1 Case Else anser = c1 End Select TextBox1.Text = CStr(anser) flag = 0 End Sub
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- nag0720
- ベストアンサー率58% (1093/1860)
考え方が根本的に間違っています。 例えば、A+B-C の計算をする場合、 (1) 数値Aを入力する (2) +を押す (3) 数値Bを入力する (4) -を押す (5) 数値Cを入力する (6) =を押す の順番で入力すると思いますが、プログラムでは、 (2)で、Aを計算結果に保存する (4)で、計算結果にBを加える (6)で、計算結果からCを減ずる の処理をします。 つまり、+,-.×,÷を押したとき、その演算ではなくひとつ前の演算をすることになります。 なお、計算の最後を知らせるために、=のボタン(またはそれに相当するボタンまたはキー)が必要になります。