Falls man nicht möchte, dass `\texmodes` durch den Aufruf von `\test` verändert wird, weil man danach für einen anderen Zweck den ursprünglichen Modus noch benötigt, geht das auch:
    % texmodes
    Anwendungsbereiche f\"ur Befehle definieren.\vskip\baselineskip
    \newcount\texmodes
    \def\texmode[#1]{\texmodes=#1}
    \def\test{%
      \def\testbefehl{Ausf\"uhren }
      \def\fehler{Nicht ausf\"uhrbar }
      \ifodd\ifcase \texmodes 0 \or 1 \or 1 \or 0 \or 0 \or 1 \fi
        \testbefehl
      \else
        \fehler
      \fi
      \vskip\baselineskip
    }
    \texmode[0]
    Mode=\the\texmodes
    \test
    \texmode[1]
    Mode=\the\texmodes
    \test
    \texmode[2]
    Mode=\the\texmodes
    \test
    \texmode[3]
    Mode=\the\texmodes
    \test
    \texmode[4]
    Mode=\the\texmodes
    \test
    %texmodes
    \bye
Ich verwende in diesem Fall ein Leerzeichen an Stelle von `\relax`, um dem TeX-Parser das Ende der Zahl zu signalisieren. Das Leerzeichen wird von TeX dabei selbst aus dem Tokenstrom entfernt, da es gerade eine Zahl liest.
einen Zahltoken erstellt.