No i problemem jest też to, że od użytkownika pobierany jest znak, a nie wartość
W czym konkretnie problem? Jeżeli np. chcesz aby użytkownik podał 0 lub 1 (co w kodowaniu ASCII będzie miało odpowiednio wartości 48 i 49), to wystarczy odjąć 48 od zawartości komórki, do której najpierw pobierzesz tę wartość. Czyli przykładowo mamy taki kod:
,------------------------------------------------
I zakładając, że użytkownik podał cyfrę (uwierz mi, nie chciałoby Ci się sprawdzać w kodzie, czy rzeczywiście to jest cyfra ), to teraz w komórce będziesz miał dokładnie tę cyfrę.
A co do samej instrukcji warunkowej - ja ogólnie nigdy specjalnie kodu w brainfucku nie pisałem, ale teraz tak na szybko przychodzi mi do głowy takie rozwiązanie: pętla wykonująca się zero razy lub jeden raz. Czyli powiedzmy, że spodziewasz się od użytkownika podania wartości '0' lub '1'. Spodziewana wartość komórki to będzie więc 48 lub 49. Odejmujesz 48 i masz 0 lub 1. Teraz tworzysz ową pętlę, która wykona się 0 razy lub jeden raz. Oto kod:
,------------------------------------------------
[>++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.<-]
Przepraszam za tę długą serię plusów i minusów, ale szczerze mówiąc nie chciałem już się bawić w skracanie tego (i zaburzyłoby to też czytelność i prostotę przykładu).
A ten kod to nawet działa.