Ваш else
оператор только связан со вторым if
оператором.Вы фактически получили:
if (firstCondition)
{
// Stuff
}
// You could have unrelated code here
if (secondCondition)
{
// Stuff
}
else
{
// This will execute any time secondCondition isn't true, regardless of firstCondition
}
Если вы хотите, чтобы он выполнялся только в том случае, если ни из более ранних if
операторов, вам нужно, чтобы второе было else if
:
if (char.IsDigit(theRealChar))
{
Console.WriteLine("Digit");
}
// Only check this if the first condition isn't met
else if (char.IsLetter(theRealChar))
{
Console.WriteLine("Letter");
}
// Only execute this at all if neither of the above conditions is met
else
{
Console.WriteLine("Not a digit and not a letter");
}