Я пытаюсь выполнить итерацию по строке, чтобы подсчитать количество вхождений определенных типов символов.Foreach with continue - неожиданное поведение
Однако я не уверен, в чем проблема с моей логикой.
foreach (var character in stringToCount)
{
if (char.IsLetterOrDigit(character))
{
alphaNumericCount++;
continue;
}
if (char.IsLower(character))
{
lowercaseCount++;
continue;
}
if (char.IsUpper(character))
{
uppercaseCount++;
continue;
}
}
только переменная alphaNumericCount
инкрементируются, и любые нижние или верхний регистр символы игнорируются. Я думаю, что неправильно понял ключевое слово continue
.
Если я прокомментирую первый оператор if
, то почему-то строчные и прописные чеки работают.
Что я делаю неправильно?
Редактировать: Спасибо всем за ваши ответы, все они очень хороши и информативны. Если бы я мог присудить несколько правильных ответов, я бы!
Если символ верхнего или нижнего регистра, то все еще письмо, не так ли? :) Возьмите 'continue' из первого оператора if. –
просто избавьтесь от 'continue'. вам не нужны они –
** Пройдите код в отладчике ** - для чего он нужен. Ваша ошибка станет очевидной примерно через пять секунд после этого. –