在此之前,让我承认它与我几天前提出的一个问题非常相似,关于其他几个问题,但在使用了我遇到的两个问题的答案之后,我现在正在运行进入另一个问题。此外,不确定标题实际上是否适合我遇到的问题,但似乎可能是代码在程序中的排序问题。
该计划的最终目标是根据添加到配料列表框的配方列表框中的成分以及每种选定成分的数量来计算配方中的卡路里数。我也应该执行几个不同的测试来防止程序崩溃。
我现在的主要问题是,无论我如何尝试调整代码以使其工作,我都无法使TotalCalories增加,所以它不断给我一个0值作为答案。我有点紧张,所以如果它能够解决这个问题而不必重新编写我已经拥有的大部分代码,那就太好了。
这是我写的代码
Public Class Form1
Private TotalCalories As Integer = 0
Private Sub btnAdd_Click(sender As Object, e As EventArgs) Handles btnAdd.Click
Dim i As Integer = lstIngredients.SelectedIndex
Dim Quantity As Double
Dim intCount As Integer = 0
If Trim(txtQuantity.Text) = "" Then
Quantity = 1
Else
Quantity = Me.txtQuantity.Text
End If
If IsNumeric(txtQuantity.Text) = False Then
MessageBox.Show("The quantity entered is not numeric. Please add a numeric quantity.")
End If
If intCount < Quantity Then
lstRecipe.Items.Add(Quantity & " " & lstIngredients.Text)
intCount += 1
End If
If lstRecipe.Text = "Eggs(each)" Then
TotalCalories += Quantity * 72
ElseIf lstRecipe.Text = "Flour(cups)" Then
TotalCalories += Quantity * 455
ElseIf lstRecipe.Text = "Milk(cups)" Then
TotalCalories += Quantity * 86
ElseIf lstRecipe.Text = "Sugar(cups)" Then
TotalCalories += Quantity * 774
ElseIf lstRecipe.Text = "Butter(tablespoons)" Then
TotalCalories += Quantity * 102
End If
End Sub
Private Sub btnClear_Click(sender As Object, e As EventArgs) Handles btnClear.Click
lstRecipe.Items.Clear()
txtQuantity.Clear()
txtAnswer.Clear()
TotalCalories = 0
End Sub
Private Sub btnCalculate_Click(sender As Object, e As EventArgs) Handles btnCalculate.Click
txtAnswer.Text = TotalCalories
End Sub
End Class
我也试过这个 如果lstRecipe.text =(数量&amp;“”&amp;“鸡蛋”&amp;“”“(每个)”)那么 ... 但这也不起作用。
答案 0 :(得分:1)
如果txtQuantity
为空,则将Quantity
变量设置为1,否则尝试解析键入的值,如果不是数字则返回。同时使用所有整数进行计算,或者如果允许使用十进制值,则对TotalCalories
变量也使用double。
如果用户在文本框中键入零
,您还不清楚自己想要做什么Private TotalCalories As Double = 0
Private Sub btnAdd_Click(sender As Object, e As EventArgs) Handles btnAdd.Click
Dim i As Integer = lstIngredients.SelectedIndex
Dim Quantity As Double
Dim intCount As Integer = 0
If Trim(txtQuantity.Text) = "" Then
Quantity = 1
Else if Not Double.TryParse(txtQuantity.Text, Quantity)
MessageBox.Show("The quantity entered is not numeric. Please add a numeric quantity.")
Return ' or Exit Sub
End If
If intCount < Quantity Then
lstRecipe.Items.Add(Quantity & " " & lstIngredients.Text)
intCount += 1
End If
If lstRecipe.Text = "Eggs(each)" Then
TotalCalories += (Quantity * 72)
ElseIf lstRecipe.Text = "Flour(cups)" Then
TotalCalories += (Quantity * 455)
ElseIf lstRecipe.Text = "Milk(cups)" Then
TotalCalories += (Quantity * 86)
ElseIf lstRecipe.Text = "Sugar(cups)" Then
TotalCalories += (Quantity * 774)
ElseIf lstRecipe.Text = "Butter(tablespoons)" Then
TotalCalories += (Quantity * 102)
End If
End Sub
但我认为你需要检查lstIngredients
而不是
If lstIngredients.Text = "Eggs(each)" Then
....