Domanda

Nella struttura del ciclo do while solitamente c'è una parte in cui dichiari una variabile uguale a un numero (in questo caso i) e poi in una seconda parte fai un incremento (i+1).Ho realizzato questo esempio in vba, ma la struttura potrebbe essere ripetuta in diversi linguaggi di programmazione come for in php quando ricevi dati da un database.Ora, quello che vorrei capire meglio è il rapporto tra le dichiarazioni citate prima, cioè i = some number E i = i + 1 .Ciò non genererebbe un problema di interpretazione poiché stai dichiarando una variabile a qualcosa e quindi assegnando un valore diverso subito dopo?È la seconda dichiarazione del valore della variabile, i = i + 1, una nuova variabile che chiama la precedente o entrambe le i sono uguali?Questo è l’orientamento generale che intendo con questa domanda.Penso che spiegare lo scoop di entrambe le variabili aiuterebbe a capire.Grazie!

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
È stato utile?

Soluzione

Dato che hai creato la variabile i come variabile globale, qualsiasi riferimento o modifica a i nel sub sarà sulla stessa variabile.Detto ciò:

Dim i as int

i = 1

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

visualizzerebbe 10 finestre di messaggio che mostrano il valore di i compreso tra 1 e 10.

Quando il programma incontra i = i + 1, il computer "vede" questo come prendere il valore di i, aggiungervi uno e memorizzare il risultato nella variabile i.

Spero che aiuti.

Altri suggerimenti

Una variabile è in realtà solo una posizione nella memoria.Quella posizione può avere qualsiasi valore.Impostando i=i+1, stai davvero dicendo "prendi il valore nella posizione i, aggiungi 1 e memorizzalo nella posizione i".Non viene creata alcuna nuova variabile.Non ci sono problemi con il computer che lo interpreta: ciò che gli interessa è la posizione di i, che non cambia.Sa ancora dove trovare i, indipendentemente da quante volte cambi il valore lì.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top