Odd/Even numbers ...


In a «repeat» loop, I want to change variable 1 on «even» numbered loop and change variable2 on «odd» numbered loop. How can I determine if the loop is odd or even numbered ?

Thanks in advance.


Hi, Robert.

repeat with i from 1 to 10
	if (i mod 2 is 0) then
		-- Even.
	else -- (i mod 2 is 1)
		-- Odd.
	end if
end repeat

Thank you Nigel. I would have not found that one. Here is a little handler than can be helpful to add to anybody’s routine library …

on OddEven(theNumber)
	if (theNumber mod 2 is 0) then
		return "even"
		return "odd"
	end if
end OddEven



You could toggle a Boolean variable to keep track.

set var1 to 1
set var2 to 100
set loopParity to false

repeat until var1 > 9 or var2 > 500
	if loopParity then
		set var1 to var1 + 2
		set var2 to var2 + 50
	end if
	set loopParity to not (loopParity)
	--display dialog "" & var1 & linefeed & var2 & linefeed & loopParity
end repeat

Thanks for your script.