Я использую следующий корпус переключателя, чтобы читать разные типы ввода, и всякий раз, когда я достигаю точки с запятой, вывод просто бесконечно циклически (обнаружено полутопливо;). Одно из решений, которое я нашел для чего-то вроде этого, предложил проверить ввод снова после всех случаев, и я уже делаю это в своем коде. Я не могу определить, почему он зацикливается и застревает в точке с запятой.Как узнать, почему случай переключения петли бесконечно?
while (inputType != 0)
{
switch (inputType)
{
case 1: // alpha
{
} // end case 1
case 3: // numeric
{
} // end case 3
case 5: // delimeter
{
break;
} // end case 5
case 6: // space
{
readChar(ref sentenceIX, ref sentence, ref inputChar, ref inputType);
if (inputType == 6)
{
readChar(ref sentenceIX, ref sentence, ref inputChar, ref inputType);
MessageBox.Show("Space detected " +inputChar);
} // end if
break;
} //end case 6
case 7: // semi colon
{
readChar(ref sentenceIX, ref sentence, ref inputChar, ref inputType);
if (inputType == 7)
{
MessageBox.Show("Semi Colon detected " +semiColonChar);
readChar(ref sentenceIX, ref sentence, ref inputChar, ref inputType);
}
break;
}
default:
{
break;
}
} // end switch
} //end while
Я также попытался сделать корпус 6 и 7 «если» вместо «пока» и без изменений. Я использую текстовое поле для строки, и я подозреваю, что это может не дать последнему char (;) в строке, и если да, то как бы я это сделал?
Нам не нужен весь ваш код ... пожалуйста, отправьте сообщение [MCVE] (http://stackoverflow.com/help/mcve) (внимание на * минимальное в этом случае) –
Чтобы ответить на вопрос в ваш заголовок, используйте отладчик –
отладчик - ваш лучший friend ... –