Topic: Error on elsif statment

I'm having trouble with a if/elsif statment similar to this:
(Please, ignore the weird names, it's portuguese stuff)

if      self.resistencia_membros_superiores > 39 && paciente.idade.between?(15,19)
           or
           self.resistencia_membros_superiores > 36 && paciente.idade.between?(20,29)
           or
           self.resistencia_membros_superiores > 30 && paciente.idade.between?(30,39)
           or
           self.resistencia_membros_superiores > 22 && paciente.idade.between?(40,49)
           or
           self.resistencia_membros_superiores > 21 && paciente.idade.between?(50,59)
           or
           self.resistencia_membros_superiores > 18 && paciente.idade.between?(60,69)
         
        return "Excelente"
    

      elsif  self.resistencia_membros_superiores.between?(29,38) && paciente.idade.between?(15,19)
             or
             self.resistencia_membros_superiores.between?(29,35) && paciente.idade.between?(20,29)
             or
             self.resistencia_membros_superiores.between?(22,29) && paciente.idade.between?(30,39)
             or
             self.resistencia_membros_superiores.between?(17,21) && paciente.idade.between?(40,49)
             or
             self.resistencia_membros_superiores.between?(13,20) && paciente.idade.between?(50,59)
             or
             self.resistencia_membros_superiores.between?(11,17) && paciente.idade.between?(60,69)

      return "Acima da media"
      
      elsif  self.resistencia_membros_superiores.between?(23,28) && paciente.idade.between?(15,19)
             or
             self.resistencia_membros_superiores.between?(22,28) && paciente.idade.between?(20,29)
             or
             self.resistencia_membros_superiores.between?(17,21) && paciente.idade.between?(30,39)
             or
             self.resistencia_membros_superiores.between?(13,16) && paciente.idade.between?(40,49)
             or
             self.resistencia_membros_superiores.between?(10,12) && paciente.idade.between?(50,59)
             or
             self.resistencia_membros_superiores.between?(8,10) && paciente.idade.between?(60,69)

      return "Na media"

The error is the following

syntax error, unexpected keyword_or, expecting keyword_end

What am I doing wrong?

Re: Error on elsif statment

Try parentheses, I think the 'or's on their own line is confusing the parser,  at least I remember similar problems when learning Ruby.  Also, you didn't have an end statement,  and we can't see what's next,  so make sure the syntax error is being reported on that first 'or' standing alone in it's own line.


 if     (   
           self.resistencia_membros_superiores > 39 && paciente.idade.between?(15,19)
           or
           .....
           self.resistencia_membros_superiores > 18 && paciente.idade.between?(60,69) 
        )
         
        return "Excelente"
    

elsif ( 
            self.resistencia_membros_superiores.between?(29,38) && paciente.idade.between?(15,19)
            or
             .....
             self.resistencia_membros_superiores.between?(11,17) && paciente.idade.between?(60,69) 
       )

      return "Acima da media"
      
elsif 
      ( 
             self.resistencia_membros_superiores.between?(23,28) && paciente.idade.between?(15,19)
             or
             .....
             self.resistencia_membros_superiores.between?(8,10) && paciente.idade.between?(60,69) 
      )

      return "Na media"
end
Joe got a job, on the day shift, at the Utility Muffin Research Kitchen, arrogantly twisting the sterile canvas snout of a fully charged icing anointment utensil.

Re: Error on elsif statment

The "end" statment is not on that piece of code but its on my, I just didn't posted the whole thing smile
Thanks alot man, the problem was on the "or" alone on the line.

 
.....
self.resistencia_membros_superiores > 39 && paciente.idade.between?(15,19) or
self.resistencia_membros_superiores > 36 && paciente.idade.between?(20,29) or
self.resistencia_membros_superiores > 30 && paciente.idade.between?(30,39) or
....