Hi,
Code:
while(!bumper_left && !bumper_right != false)
Erklärung zu deinem Code:
Deine while-Schleife läuft, solange ...
- der linke Bumper nicht gedrückt ist (!bumper_left) UND (&&) ...
- der Wert für den nicht gedrückten rechten Bumper (!bumper_right) UNGLEICH (!=) false
... ist.
Der letzte Teil (!bumper_right != false) ist identisch mit: (bumper_right == false) wegen der doppelten Verneinung und das ist identisch mit: (!bumper_right).

Also: Dein Code macht zwar alles richtig, ist aber so nicht nötig,- das: while(!bumper_left && !bumper_right) reicht.

Übrigens:
(!bumper_left && !bumper_right) kann man auch so schreiben: (bumper_left == false && bumper_right == false)

Verwirrung komplett?