#c# #switch-statement
#c# #switch-инструкция
Вопрос:
я проверяю, что переменное имя пользователя содержит «ali», которое является строковым значением в случае switch, но мой учитель сказал мне ранее, что вы можете проверять только типы данных char и int, но он отлично работает со строкой, поэтому я смущен тем, что проверка строкового типа данных в switch является хорошей практикой или нет?
string userName = "Ali";//the variable i want to check
switch(userName)
{
case "Ali"://value i want to check
Console.WriteLine("found");
break;
default:
Console.WriteLine("not found");
break;
}
Комментарии:
1. Не ясно, в чем вопрос. Как вы заметили, вы можете использовать строку в инструкции switch в C #.
2. Время найти новую школу. Черт возьми, вы не можете этого сделать на C или C . Возможно, ваш преподаватель перепутал свои языки.
3. мой вопрос в том, что я проверяю, содержит ли переменное имя пользователя «ali», которое является строковым значением в случае switch, но мой учитель сказал мне ранее, что вы можете проверять только типы данных char и int, но он отлично работает со строкой, поэтому я смущен тем, что проверка строкового типа данных в switch является хорошей практикой или нет?
4. Да, технически в этом нет ничего плохого, хотя у вас нет контроля над языком или чувствительностью к регистру, как при непосредственном сравнении двух строк. Возможно, ваш инструктор предлагает вам использовать константы, но все же они ошибаются, предполагая, что это невозможно сделать. Попросите их уточнить.
5. завтра у меня доклад, и я беспокоюсь, поддержит ли она мою точку зрения или нет, кстати, спасибо всем вам.
Ответ №1:
Вы, безусловно, можете использовать строку в выражении switch.
В C # 6.0 вы могли бы использовать целые значения, перечисления, логические значения, символы и, да, строки. Начиная с C # 7.0, вы можете использовать любое ненулевое выражение. Смотрите официальную документацию для получения дополнительной информации.
Комментарии:
1. спасибо, я проверил, что они также используют строковое значение. уважение с моей стороны.
Ответ №2:
Да, вы можете это сделать. Но не так, как вы пытаетесь сделать. Ваша строка в switch написана заглавными буквами, а переменная — нет. Также ваша переменная названа userNAme, но в switch вы пытаетесь использовать userName. Попробуйте этот код:
string userName = "Ali";
switch(userName.ToLower())
{
case "ali":
Console.WriteLine("found");
break;
default:
Console.WriteLine("not found");
break;
}
Комментарии:
1. да, вы правы, когда я набрал это, я забыл это, спасибо
Ответ №3:
Вы можете использовать переключатель управления потоком для строки
but you find two error in your coding, because c# case sensitive
string userNAme and and you write switch(userName)
и
break: change to break;
Комментарии:
1. да, я знаю чувствительность к регистру, я просто ввел демонстрационный код, чтобы задать свой код