Я пытаюсь сделать цикл, который продолжает вычитать из первоначальной суммы каждого предмета, пока сумма не станет меньше цены предмета.Предполагается также показать последний купленный предмет до того, как сумма была меньше цены предмета.Автомобили стоят 310 000 долларов, кольца - 12 500 долларов, бриллианты - 150 000 долларов, шоколад - 51 доллар.Элементы находятся в файле на моем компьютере, и вот пример того, как они должны выглядеть:
Пример ввода:
350000
Car
Ring
Diamond
Car
Chocolate
Diamond
Пример вывода:
Ring
$27, 500 left
По какой-то причине значение, которое я получаю, выдает неправильное значение, когда вычитает, но я не могу понять, почему.Я объявил цены для каждого товара и проверил несколько раз, чтобы убедиться, что они правильные, и я проверил свой код, но я все еще не знаю, почему я получаю неправильный вывод.
Private Sub btnS_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnS.Click
Dim inFile As StreamReader = New StreamReader("serena.txt")
'Declare the varibles
Dim variableName As String
' the current items from the file
Dim amount As Integer
Dim price As Integer
amount = Val(inFile.ReadLine())
Do
'read in the words
variableName = inFile.ReadLine()
'determine each item's price
If variableName = "car" Then price = 310000
If variableName = "ring" Then price = 12500
If variableName = "diamond" Then price = 150000
If amount >= price Then amount = amount - price
Loop Until amount < price
'output the results
Me.lblOutput.Text = variableName & _
vbNewLine & "Serena has " & Format(amount, "currency") & " left"
End Sub