2014-04-12 5 views
0

В структуре do while while обычно есть часть, где вы объявляете переменную, равную числу (в данном случае i), а затем во второй части вы делаете приращение (i+1). Я сделал этот пример в vba, но структуру можно было повторить в нескольких разных языках программирования, таких как for в php, когда вы получаете данные из базы данных. Теперь я хотел бы лучше понять связь между предыдущими заявлениями, то есть i = some number и i = i + 1. Разве это не вызовет проблему интерпретации, поскольку вы объявляете какую-либо переменную, а затем присваиваете другое значение сразу после нее? Является ли второе объявление значения переменной, i = i + 1, новая переменная, вызывающая предыдущую или оба, одинакова? Это общая ориентация, которую я намерен с этим вопросом. Я думаю, что объяснение совок обеих переменных поможет понять. Благодаря!Строка do while loop

Sub DoWhile() 
Dim x, i, sum 
x = 10 
i = 1 
sum = 0 
Do While i < x 
sum = sum + i 
i = i + 1 
Loop 
MsgBox “Sum = ” & sum 
End Sub 
+1

было бы хорошо отметить это языком, который вы используете. – RobP

ответ

0

Поскольку вы создали переменную i как глобальную переменную, любая ссылка или модификация в i в подпункте будет иметь одну и ту же переменную. Это, как говорится:

Dim i as int 

i = 1 

Do while i < 11 
    MsgBox("The value of i is: " & i) 
    i = i + 1 
Loop 

будет отображать 10 MessageBoxes, показывающий значение я быть между 1 и 10.

Когда программа встречает i = i + 1, компьютер «видит» это как взять значение I, добавить один к нему и сохранить результат в переменной i.

Надеюсь, что это поможет.

1

Переменная - это просто место в памяти. Это местоположение может иметь любую ценность. Установив i = i + 1, вы действительно говорите: «Возьмите значение в позиции i, добавьте 1 к нему и сохраните его в позиции i». Новая переменная не создается. Нет никакой проблемы с компьютером, интерпретирующим это, - то, о чем он заботится, является местоположение i, которое не меняется. Он все еще знает, где найти i, независимо от того, сколько раз вы меняете стоимость там.