You can also do different combinations of logic in the if statement, such as (lastState<currentState) to detect it switching to ON only.

The other way is to use interrupts, this is a bit more advanced and limits which pins you can use, but overall is a better way of writing this kind of program for an microcontroller. Interrupts monitor the state of the pin for you in the background, and when the state of the line changes it calls a function you've specified. As you can now remove all the code from your loop, interrupts allow you to do other things at the same time, they also guarantee that you will not miss the button press (this wouldn't be a problem in your case, but imagine in your loop you have some other code that takes a long time to complete, you could miss the state change). To find out how to use interrupts have a look at http://arduino.cc/en/Reference/AttachInterrupt