Switches and buttons come in many forms and variations depending on the use-case. Most often, interaction with the switch relates to altering between two states: on (closed) or off (open). We distinguish between three types: switches, buttons and switch buttons.

A switch allows you to toggle between two states, which means that the switch will stay in an altered state when released. They’re also referred to as toggle switches. A common example is a household light switch.

A button will change state when pressed, but return to its original state when released. Buttons are therefore classified as NO (normally open) or NC (normally closed) as reference to the ‘basic’ state of the button prior to interaction – or in other words, wether the button is on (NC) or off (NO) when you aren’t touching it. An example is a button on a TV-remote or similar.

A switch button refers to a button which operates like a switch. It toggles between the two states with every other click. This function can be physical, and works much like a ballpoint pen, but it can also be coded digitally using a regular button. Coding a switch button requires use of debounce to ignore noise. See links below for more information

Links:

How to wire a basic button or switch with Arduino
How to code a switchbutton using debounce on Arduino
Learn more about debounce