You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

制作简易计算器:添加减法功能后加法功能异常的修复咨询

修复VB.NET简易计算器加减功能混淆的问题

你的问题出在没有记录用户选择的运算类型——不管点加法还是减法按钮,等号里都只会执行你写死的那一种运算(改成减法后,加法按钮触发的流程也会走减法逻辑)。按以下步骤修复:

解决步骤

  1. 添加一个变量用来标记当前要执行的运算(比如用字符串标记"+"或"-")
  2. 在加法、减法按钮的点击事件中,不仅保存第一个数值,还要记录对应的运算类型
  3. 在等号按钮中,根据之前记录的运算类型,执行对应的加法或减法操作

修正后的完整代码

' 存储第一个数值、第二个数值,以及当前要执行的运算类型
Dim firstValue, secondValue As Integer
Dim currentOperation As String = "" ' 用"+"或"-"标记当前运算

Private Sub Button15_Click(sender As Object, e As EventArgs) Handles Button15.Click
    ' 安全转换输入的第二个数值(避免非数字输入报错)
    If Integer.TryParse(TextBox1.Text, secondValue) Then
        ' 根据记录的运算类型执行对应操作
        Select Case currentOperation
            Case "+"
                TextBox1.Text = (firstValue + secondValue).ToString()
            Case "-"
                TextBox1.Text = (firstValue - secondValue).ToString()
        End Select
    Else
        TextBox1.Text = "输入无效"
    End If
End Sub

Private Sub Button16_Click(sender As Object, e As EventArgs) Handles Button16.Click
    TextBox1.Clear()
    ' 重置所有变量,避免残留值影响下次计算
    firstValue = 0
    secondValue = 0
    currentOperation = ""
End Sub

Private Sub Button11_Click(sender As Object, e As EventArgs) Handles Button11.Click
    ' 保存第一个数值并标记当前运算为加法
    If Integer.TryParse(TextBox1.Text, firstValue) Then
        TextBox1.Clear()
        currentOperation = "+"
    Else
        TextBox1.Text = "输入无效"
    End If
End Sub

Private Sub Button12_Click(sender As Object, e As EventArgs) Handles Button12.Click
    ' 保存第一个数值并标记当前运算为减法
    If Integer.TryParse(TextBox1.Text, firstValue) Then
        TextBox1.Clear()
        currentOperation = "-"
    Else
        TextBox1.Text = "输入无效"
    End If
End Sub

额外说明

  • 加入了Integer.TryParse来处理非数字输入的情况,避免程序崩溃
  • 清除按钮会重置所有变量,防止上次计算的残留值干扰新的运算
  • 每次点击加减按钮时,都会先验证输入的第一个数值是否有效,再切换到输入第二个数值的状态

内容的提问来源于stack exchange,提问作者user22252994

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 14:16:02