如果这个问题被多次询问,我很抱歉。 但在所有帖子上......我找不到明确的解决方案。 我之前问了我的问题,这对我帮助很大......还有这个问题。
进行多次计算而不按'='符号
如果
'5+3 ='
然后
'8'
务!
但是如果
'5+5/10='
然后
不工作
不打算像(5 * 5)+(2 + 3)那样建造一个困难的calcutor 它应该继续对前一个结果进行计算
如果用户尝试进行多次计算,请制作一个草率的解决方案 他得到一个消息框(“错误”),一切都重置
SUB FOR THE OPERATORS
button.text成为运营商:
Private Sub Operators_Buttons_Click(sender As Object, e As EventArgs) Handles AdditionButton.Click, SubtractionButton.Click, _
MultiplicationButton.Click, DivisionButton.Click
Dim x As Button = CType(sender, Button)
Dim button As String = x.Text
_Operator = button
如果文本框中没有值,则此子修复
If ThereIsAnValue() = False Then
MessageBox.Show("Give in a value before u use an operator")
ResultTextbox.Text = "0"
'如果ThereIsAnValue为true,它将检查某处是否存有第一个数字 '如果_IsThereAnFirstNumber在formload
中始终为false否则
If _IsThereAnFirstNumber = False Then
'输入将进入_value1
_Value1 = Convert.ToDecimal(ResultTextbox.Text)
ResultTextbox.Text = "0"
'现在Value1中有一个值
_IsThereAnFirstNumber = True
如果我们按下运算符_IsThereAnFirstNumber为真
ElseIf _IsThereAnFirstNumber = True Then
我制作了这个垃圾代码......
MessageBox.Show("Please press the '=' sign after every single calculation")
MessageBox.Show("System reset")
_IsThereAnFirstNumber = False
_Value1 = Nothing
_Value2 = Nothing
ResultTextbox.Text = "0"
End If
SUB FOR THE EQUAL SIGN
Private Sub EqualsButton_Click(sender As Object, e As EventArgs) Handles EqualsButton.Click
If _IsThereAnFirstNumber = True Then
_Value2 = Convert.ToDecimal(ResultTextbox.Text)
ResultTextbox.Text = "0"
End If
Select Case _Operator
Case "+"
_Result = _Value1 + _Value2
Case "-"
_Result = _Value1 - _Value2
Case "*"
_Result = _Value1 * _Value2
Case "/"
_Result = _Value1 / _Value2
End Select
ResultTextbox.Text = Convert.ToString(_Result)
_IsThereAnFirstNumber = False
End Sub
换句话说,如果ThereIsAnFirstNumber为true,我的程序只输入“垃圾代码”。 因为如果我按下等号,它将变为假。
但是如果进入“垃圾代码”,我应该编写哪些代码? 为了继续计算?
当我说'5 + 5/10 ='时它会''''''''''''''''''''''''''''''''''''''''''''''''''''''''并将其除以/ 10,如果那时我会说+3在按下'='符号后它必须是4
感谢名单
答案 0 :(得分:0)
如果您想构建一个简单的计算器,您的方法是不对的。您应该继续Windows计算器的工作,即在按下操作时计算结果。解释起来相当复杂,我不会为你编写整个代码,只是为了指导你如何完成,你应该按照以下步骤进行操作;
Private _result as decimal
Private _value as decimal
Private Sub PlusButton_Click(sender As Object, e As EventArgs) Handles PlusButton.Click
If _result <> cdec(0) then
_result = _result + _value
EndIf
// Then you can add your other logics, such as writting the calculation in a Textbox
End Sub
你也可以对其他标志做同样的事情。
如果您希望对所有标志使用1个手柄,那么您就像使用case-else块一样。