Ingrese un número entero positivo desde el teclado en VB y luego genere cada dígito del número en orden inverso
La cantidad parece muy complicada. Para analizarla claramente, primero debes comprender el rango de uso y las reglas de llamada de cada variable.
Dim x As Integer, y As Integer'Aquí hay un conjunto de variables externas y se puede llamar a todo el proceso
Private Sub Command1_Click()
Dim a As Integer , b Como variable local de Integer, lo que aparezca en este proceso se refiere a esta variable, no se puede llamar desde otros lugares y los cambios en la variable con el mismo nombre no la afectarán
a = 5: b = 3
Llamar sub1(a, b)
Imprimir a, b
Imprimir x, y' aquí se refiere a ingresar datos externos variables x, y
End Sub
Private Sub sub1(ByVal m As Integer, n As Integer)
'Hay un punto a tener en cuenta aquí: m y n se pasan de diferentes maneras. En pocas palabras, la primera es pasar el valor de a en la llamada sub1 (a, b) a m. Luego, el cambio de m no afectará a a. de b se pasa a n, el cambio del valor de n afectará a b. Además, es decir, imprime a al final, y el valor de b en b es el último valor de n devuelto a b. Entonces, al final b=2
Dim y As Integer' Esta es la y local que debe distinguirse de la y externa anterior. Todo lo involucrado en sub1 es esta y local, y su cambio no tiene nada que ver. con la y externa.
x = m n: y = m - n'La y local solo cambia aquí, y luego siempre es 2
m = fun1(x, y)'Los parámetros pasados son X externo e y local
n = fun1(y, x)
End Sub
Función privada fun1(a como entero, b como entero) como entero
'Los parámetros a y b aquí son equivalentes a las variables locales de fun1. Solo están relacionados con x e y cuando la función se llamó anteriormente y no tienen nada que ver con el grupo anterior de a. y b. También se debe prestar atención al método de transferencia.
x = a b: y = a - b'Nota: Después de calcular x=8 2=10, debido a que los métodos de transferencia son tipos que se afectan mutuamente, el valor de a aquí en fun1 también cambiará en consecuencia. al calcular y a continuación, es y=10-2=8
Este es tu primer problema. También tenga en cuenta: la y asignada aquí es la y de la variable externa, porque la y de la variable local solo es válida dentro de la función sub1 y no es válida en otros lugares.
Imprime x, y' genera x externo y y externo
fun1 = x y