Ich sehe keinen Grund, warum ein Wandkontakt nicht zu der gewünschten Reaktion führen sollte. Der PollSwitch-Aufruf ist da genau richtig platziert. Du hast aber ein anderes Problem: Deine beiden Hilfsfunktionen dürfen main() nicht wieder aufrufen. Das gibt sonst eine Endlos-Rekursion die letztendlich dein Programm "abstürzen" lässt.

Nachtrag: Mic hat einen weiteren wichtigen Fehler gefunden, die fehlenden geschweiften Klammern im inneren else-Zweig. Aus diesem Grund ist es eine gute Praxis, auch bei einzeiligen Verzweigungen (if, else, for, while und do) immer geschweifte klammern zu setzen.

mfG
Markus