Чего-то недопонимаю в логике конструкций.
Это же не while loop.
Здесь четко указано от какого значения и до какого...
Рабочие значения для этого цикла:
levelenchant = от 0 до 20, но как правило больше 4 и до 20 (из усл. выше). По умолчанию 4
safetyenchant = как правило, значение ровно 3.
Теперь, я инициирую цикл от 1 до (4-3) с приращением +1. Должен выполнится 1 раз.
Причем здесь условия?
Вот код этой же программы, написанной на VB6 (рабочий)
Код:
|
If levelenchant >= 0 And levelenchant <= 20 Then
If chanceenchant >= 1 And chanceenchant <= 100 Then
If levelenchant > safetyenchant Then
For i = 1 To (levelenchant - safetyenchant)
sum = sum + (1 - (chanceenchant / 100) ^ i) * priceitem
Next i
End If
sumpriceitem = priceitem + priceenchant * levelenchant + sum
Text6.Text = Str(sumpriceitem)
Else
a = MsgBox("Chance is incorrect" + Chr(13) + "Reenter chance of successful enchant, from 1 to 100", vbInformation + vbOKOnly, "Error:")
End If
Else
a = MsgBox("Enchant level is incorrect" + Chr(13) + "Reenter enchant level, from 0 to 20", vbInformation + vbOKOnly, "Error:")
End If
End Sub |