Portal    Foro    Buscar    FAQ    Registrarse    Conectarse

Condicionales. Evitar Condición Repetida

Condicionales. Evitar Condición Repetida
Artículo
Responder citando    Descargar mensaje  
Mensaje Condicionales. Evitar Condición Repetida 
 
Hola!.

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
 


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
 


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



 
Shell - Ver perfil del usuario Enviar mensaje privado  
Shell [ Miercoles, 11 Diciembre 2013, 18:52 ]
 


Condicionales. Evitar Condición Repetida
Comentarios
Responder citando    Descargar mensaje  
Mensaje Re: Condicionales. Evitar Condición Repetida 
 
La evaluación de si ya has visto o no a la persona la has puesto en la función de dar_saludo, no está mal (yo lo habría hecho en la función principal, pero vale). El problema es que añades la persona la saludes o no, con lo cual duplicas a los que ya has saludado.
Deberías colocar la adición al string[] justo después de dar el saludo, dentro del if.

 If Not personas_saludadas.Exist(ves_persona) Then
    Print "Hola " & ves_persona
    personas_saludadas.Add(ves_persona)
  Else
    Print "..."
  Endif
 
Para el ejemplo no pasa nada con que estén duplicadas, pues siguen existiendo, pero no parece correcto...

Saludos.



 
shordi - Ver perfil del usuario Enviar mensaje privado  
shordi [ Miercoles, 11 Diciembre 2013, 20:47 ]
Responder citando    Descargar mensaje  
Mensaje Re: Condicionales. Evitar Condición Repetida 
 
Shordi:

Cierto, en el segundo ejemplo es como  has dicho.
Parece que lo hice por imitación del primero. Es que era el que me preocupaba
para solucionar el problema.

Saludos



 
Shell - Ver perfil del usuario Enviar mensaje privado  
Shell [ Jueves, 12 Diciembre 2013, 10:08 ]
Mostrar mensajes anteriores:    
 
Publicar nuevo tema  Responder al tema  Página 1 de 1
 
 

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 



 

cron