Ich versuche mal eine mögliche Lösung anders zu umschreiben.
Was du dir in jedem Fall erst mal selbst klar machen mußt, ist was du als Eingabe hast, was deine Ausgabe sein soll und wie die Verarbeitung dazwischen aussehen muss.
Du hast als Eingang einen Taster, als Ausgang aber 3 verschiedene Zustände. Nun mußt du dir also erstmal überlegen, wie du mit einem Taster auf 3 verschiedene Zustände kommst.
Man kann das darüber lösen, dass der Taster einen Zähler hoch zählt. Bei Überschreitung des höchsten gewünschten Zählerstandes muß dieser auf den niedrigsten gewünschten zurück gesetzt werden.
Fange erstmal an dir Gedanken darüber zu machen, was der Taster macht - er kann einen Eingang high oder low setzen. Am sichersten ist es den Wechsel von einen Zustand in den nächsten als Trigger zu verwenden- hierfür gibt es Beispiele. Der Wechsel muss entprellt sein, sonst löst das Schwingen der Kontakte im Taster ganz viele Zählungen aus. Als (üble) Krücke, kannst du dafür delay() nehmen- aber eleganter geht es mit millis().
So, nun solltest du schon mal einen Taster sauber einlesen können.
Damit kannst du nun eine Variable als Zähler nutzen der bei jeder Betätigung hochzählt- du brauchst hier 3 Zustände- wenn du nichts anderes definierst, geht es bei 0 los, überschreitet der Zähler 2 setzt du den wieder auf 0 - das geht mit "if" recht einfach.
Naja- und mit den Zählerwerten kannst du über eine if- Schleife oder case dann die Ausgänge steuern. Denke aber daran, dass du den LEDs aber jeden Status mitteilen mußt, den sie annehmen sollen- also nicht nur an- sondern auch ausschalten mußt.
Alle Einzelschritte findest du auch in den Basis- Beispielen von Arduino- du mußt es nur sinnvoll verknüpfen.
Während du das ganze in einen Sketch schreibst, wirst du merken, dass du mit ganz wenigen Änderungen das ganze beliebig erweitern kannst.