C'est comme une balle qui rebondi sur le sol.
Rebond, rebondir, il y a des origines communes 
Le contact mobile vient frapper le contact fixe et fait comme la balle : elle quitte le sol par rebond. Au début, elle monte haut, puis petit à petit, en perdant de l'énergie, elle monte de moins en moins haut et fini par rester au sol.
Ce qui veut dire :
- que les rebonds sont multiples, il n'y en a jamais qu'un seul
- que chaque rebond est plus court que son précédent.
Je prends le schéma classique de câblage d'un bouton :
- Le contact est placé entre la masse et une entrée du micro.
- On active la résistance "pull-up" interne du micro qui fait autour de 50 kilos ohms.
- Au repos, le contact du bouton est ouvert et l'entrée du micro est à Vcc par l'intermédiaire de la pull-up.
- Quand les lames du contact se touchent, l'entrée du micro reçoit un 0 V.
Les rebonds vont se traduire par la détection d'une suite de niveaux LOW et HIGH.
Le traitement soft ou logiciel consiste (en gros) à introduire une temporisation et à tester que la fonction digitalRead() retourne toujours la même valeur.
Le traitement "Hard", je préfère le terme "matériel" consiste à placer un condensateur en parallèle sur le contact.
Avant l'appui sur le bouton, le condensateur est chargé à Vcc par l'intermédiaire de la pull-up.
Au premier appui, le condensateur est instantanément et complètement court-circuité par le contact.
Quand le contact s'ouvre par rebond, le condensateur commence à se charger à travers la pull-up.
Mais cela prend du temps avant que la tension aux bornes du condensateur soit suffisante pour que le micro la considère comme un niveau haut, Au fur et mesure des rebonds les lames se retouchent (la balle retouche le sol) et déchargent régulièrement le condensateur.
En conséquence, tant que le bouton reste enfoncé, le micro ne peut que détecter un niveau bas.
Avec un bouton contact habituel, une valeur de 100 nF associé à la pull-up convient dans 99 % des cas.
Avec un gros contacteur massif conçu pour plusieurs ampères, comme l'a écrit Kamil, il serait préférable d'associer les deux solutions.
Voilà l'état des lieux, tu choisis la solution qui te convient le mieux.
Étant un ancien électronicien, je ne peux imaginer d'autre solution que le condensateur. 
Mais bien naturellement, je comprends parfaitement qu'un non-électronicien n'a pas envie de câbler des composants alors qu'il peut s'en dispenser avec des lignes de code. 