Похвальное начинание, хотя не уверен, что в самом подходящем для него месте 0) Итоговое нормальное решение - всё равно мап 1) Избавься от вечного цикла и метки, по которой продолжаешь, над циклом 2) не сравнивай строки через == 3, оно же к 1) избавься от двух циклов