Supongamos el caso de que una vez cumplida una condición, no queremos que se vuelva
a repetir esa misma condición.
Un ejemplo muy simple y cotidiano. Saludar a un conocido, pero si lo volvemos a ver no le saludamos.
No cuento la condición de tiempo.
Debes asignar un nombre a la variable nombre actual y llamar al procedimiento. Dos instrucciones
He repetido el nombre de María para que solo la salude una vez.
Private nombre_actual As String
Private nombre_anterior As String
Public Sub Main()
nombre_actual = "María"
Dar_saludo(nombre_actual)
nombre_actual = "María"
Dar_saludo(nombre_actual)
'nombre_actual = "Julio"
'Dar_saludo(nombre_actual)
End
Public Sub Dar_saludo(ves_persona As String)
If ves_persona <> nombre_anterior Then
Print "Hola " & ves_persona
Else
Print "..."
Endif
nombre_anterior = ves_persona
End
Private nombre_anterior As String
Public Sub Main()
nombre_actual = "María"
Dar_saludo(nombre_actual)
nombre_actual = "María"
Dar_saludo(nombre_actual)
'nombre_actual = "Julio"
'Dar_saludo(nombre_actual)
End
Public Sub Dar_saludo(ves_persona As String)
If ves_persona <> nombre_anterior Then
Print "Hola " & ves_persona
Else
Print "..."
Endif
nombre_anterior = ves_persona
End
Ahora vamos a recordar a las personas que hemos saludado.
Private nombre_actual As String
Private personas_saludadas As New String[]
Public Sub Main()
nombre_actual = "María"
Dar_saludo2(nombre_actual)
'nombre_actual = "María"
'Dar_saludo2(nombre_actual)
nombre_actual = "Julio"
Dar_saludo2(nombre_actual)
nombre_actual = "María"
Dar_saludo2(nombre_actual)
End
Public Sub Dar_saludo2(ves_persona As String)
If Not personas_saludadas.Exist(ves_persona) Then
Print "Hola " & ves_persona
Else
Print "..."
Endif
personas_saludadas.Add(ves_persona)
End
Private personas_saludadas As New String[]
Public Sub Main()
nombre_actual = "María"
Dar_saludo2(nombre_actual)
'nombre_actual = "María"
'Dar_saludo2(nombre_actual)
nombre_actual = "Julio"
Dar_saludo2(nombre_actual)
nombre_actual = "María"
Dar_saludo2(nombre_actual)
End
Public Sub Dar_saludo2(ves_persona As String)
If Not personas_saludadas.Exist(ves_persona) Then
Print "Hola " & ves_persona
Else
Print "..."
Endif
personas_saludadas.Add(ves_persona)
End
Con el primer ejemplo he resuelto un problema en donde constantemente se leía el valor de una variable.
Este valor se repetía una y otra vez ya que no cambiaba. Y solo me interesaba ejecutar el mismo grupo de instrucciones
cada vez que cambiaba "esa variable". De la otra forma se ejecutaba el grupo de instrucciones siempre llegando a volver
loca la aplicación.
Saludos