Also, I forgot to mention, you can also use maintained push buttons too. There are a few button choices and they all can be used in a number of ways. It just comes down to how you use it in your logic mostly. Sometimes I use a multistate push button to do it too. With multistate you can have, for example;
State1: 0 (with "off" text displayed on a red button)
State2: 1 (with "on" text displayed on green button)
You can make the "State" data be whatever you want, ie;
state1: 1 (or any number)
state2: 0 (or any number)
which is nice for boolean operations, like a switch's state.
or
State1 = 1 (or any number)
State2 = 2 (or any number)
State3 = 3 (or any number)
State4 = 4 (or any number)
and so on...
which is an example of multi state consisting of more than just 2 states, and you can use things like comparators to handle the data logically however you see fit, ie; ==, !=, >, <, >=, etc...