Я пытаюсь создать калькулятор, в котором пользователь вводит число (1-20), и он дает пользователю возможность получить сумму или произведение от 1 до введенного числа. т.е. сумма 5 будет 15, а произведение - 120. Я использую вариант выбора и цикл for next. Мне удалось добиться правильной работы суммы на калькуляторе, и я подумал, что могу использовать тот же принцип для части продукта, но мне не повезло. Любая помощь или легкий толчок в правильном направлении будут очень благодарны. Ваше здоровье.

Код:

    Dim intsum As Integer
    Dim intnum As Integer
    Dim intproduct As Integer

    If IsNumeric(txtinput.Text) Then
        intnum = CInt(txtinput.Text)
    Else
        MessageBox.Show("Please enter a numeric value", "Input error")
        txtinput.Clear()
        txtinput.Focus()

    End If

    If intnum >= 1 AndAlso intnum <= 20 Then

        Select Case True

            Case btnproduct.Checked
                For P = 1 To intnum Step 1
                    intproduct = intproduct * P

                Next


            Case btnsum.Checked
                For S = 1 To intnum Step 1
                    intsum = intsum + S
                Next




        End Select
1
yodatom10 9 Мар 2015 в 18:32

2 ответа

Лучший ответ

Инициализируйте intproduct равным = 1, так как в данный момент вы умножаете свое значение на 0, чтобы он всегда отображал окончательный результат как 0.

1
xiimoss 9 Мар 2015 в 15:39

Вам не нужно проверять значение intnum, если значение не является числовым.

Dim intsum As Integer
Dim intnum As Integer
Dim intproduct As Integer

If IsNumeric(txtinput.Text) Then
    intnum = CInt(txtinput.Text)

    If intnum >= 1 AndAlso intnum <= 20 Then

        Select Case True

        Case btnproduct.Checked
            For P = 1 To intnum Step 1
                intproduct = intproduct * P

            Next


        Case btnsum.Checked
            For S = 1 To intnum Step 1
                intsum = intsum + S
            Next




        End Select
    End If 
Else
    MessageBox.Show("Please enter a numeric value", "Input error")
    txtinput.Clear()
    txtinput.Focus()

End If
0
phil652 9 Мар 2015 в 17:08