Member 12890246 Ответов: 4

Проблема C# (программа dosn't reconize x, когда я ее вставляю


Console.WriteLine("Type in 1,2 or x");
            char c = Console.ReadLine()[0];
            c = char.ToUpper(c);
            if (c== '1')
            {
                Console.WriteLine("Your option is {0}", c);
                Console.ReadKey();
            }//(c == '1')
            else if (c== '2')
            {
                Console.WriteLine("Your option is {0}", c);
                Console.ReadKey();
            }//(c == '2')
            else if (c.Equals('x'))
            {
                Console.WriteLine("Your option is {0}", c);
                Console.ReadKey();
            }//(c == 'x')
            else
            {
                Console.WriteLine("1,2 or x Only !");
                Console.ReadKey();
            }//else
            Console.WriteLine("Goodbye");
            Console.ReadKey();


Что я уже пробовал:

(c== 'x')
я меняю его на
(c.Equals('x'))
.

4 Ответов

Рейтинг:
2

Karthik_Mahalingam

Всегда меняйте регистр при сравнении значений, либо Топпер[^] или Нижестоящим[^]

if ("X".ToLower() == "x") // this will work irrespective of the case which the user types
          { }


Philippe Mori

Так как уже был звонок в char.ToUpper сразу после прочтения значения нет особого смысла теперь переводить его в нижний регистр. Вместо этого он должен либо сравнить с "X", либо изменить исходную функцию cal.

Рейтинг:
2

Ajesh1986

Вы должны изменить свой код

else if (c.Equals('x'))

к
else if ("X".ToLower() == "x")

или
else if ("x".ToUpper() == "X"

это будет работать, если пользователь введет caps X или small x...

Одно предложение лучше использовать оператор switch-case-default, если вы хотите принять решение из числа вариантов..

Надеюсь, это поможет вам.


Philippe Mori

Хорошее предложение использовать switch заявление. Однако этот ответ не приносит достаточной ценности существующим 3 ответам. Комментария к вопросу или другого ответа было бы достаточно.

Рейтинг:
2

Member 12890246

Я ставил мало, когда должен был ставить большой Х.


Patrice T

Воспользуйся Принять ответ чтобы закрыть вопрос.

Рейтинг:
1

Patrice T

Используйте отладчик, чтобы увидеть, что делает ваш код. Он позволяет выполнять строки 1 на 1 и проверять переменные по мере их выполнения.

Вы должны научиться использовать отладчик как можно скорее. Вместо того чтобы гадать, что делает ваш код, пришло время увидеть, как он выполняется, и убедиться, что он делает то, что вы ожидаете.

Отладчик-Википедия, свободная энциклопедия[^]
Освоение отладки в Visual Studio 2010 - руководство для начинающих[^]

Отладчик здесь для того, чтобы показать вам, что делает ваш код, и ваша задача-сравнить его с тем, что он должен делать.
В отладчике нет никакой магии, он не находит ошибок, он просто помогает вам. Когда код не делает того, что ожидается, вы близки к ошибке.