Scott Kane wrote:
----- Original Message ----- From: "J. Landman Gay" <[EMAIL PROTECTED]>

I read somewhere a long time ago that switch statements run faster than if/else. I think it was a general comment rather than specifically related to Revolution programming but it was so long ago I can't recall. Does anyone know if it is true for Rev scripts?

I haven't timed it - but if it's read by the engine in the same manner other programming languages handle it then it would be faster as any subsequent conditions are skipped because once the case statement (switch statement) is met the compiler knows not to proceed - as opposed to if/then/else etc where the entire handler is evaluated in full.

I remember reading that Rev doesn't evaluate the entire if/else, so I'd think it would be about the same as switch. But lookee here, I did a test, with surprising results:

on mouseUp
  put 100000 into tRepeats
  put the milliseconds into tstart
  switchTest tRepeats
  put the milliseconds - tstart into item 1 of tTimes
  put the milliseconds into tstart
  ifTest tRepeats
  put the milliseconds - tstart into item 2 of tTimes
  put tTimes
end mouseUp

on switchTest pRepeats
  put 1 into tRep
  repeat pRepeats
    switch tRep
    case tRep > 10000
      put tRep into x
      break
    case tRep > 5000
      put tRep into x
      break
    case tRep > 2000
      put tRep into x
      break
    default
      put tRep into x
    end switch
    add 1 to tRep
  end repeat
end switchTest

on ifTest pRepeats
  put 1 into tRep
  repeat pRepeats
    if tRep > 10000 then
      put tRep into x
    else if tRep > 5000 then
      put tRep into x
    else if tRep > 2000 then
      put tRep into x
    else
      put tRep into x
    end if
    add 1 to tRep
  end repeat
end ifTest


The "if/else" is 4 to 5 times faster. <blink> Is my test accurate?

--
Jacqueline Landman Gay         |     [EMAIL PROTECTED]
HyperActive Software           |     http://www.hyperactivesw.com
_______________________________________________
use-revolution mailing list
[email protected]
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution

Reply via email to