Подтвердить что ты не робот

Что такое оператор OR в выражении IF

В С#, как мне указать OR:

if(this OR that) {do the other thing}

Я не смог найти его в справке.

Update:

Мой код:

if (title == "User greeting" || "User name") {do stuff}

и моя ошибка:

Ошибка 1 Оператор '||' не может применяться к операндам типа "bool" и "string" C:\Documents and Settings\Sky View Barns\Мои документы \Visual Studio 2005\Projects\FOL Ministry\FOL Ministry\Downloader.cs 63 21 FOL Ministry

4b9b3361

Ответ 1

|| является условным оператором OR в С#

Вероятно, вам было трудно найти его, потому что трудно найти что-то, чье имя вы не знаете. В следующий раз попробуйте выполнить поиск Google для "С# Operators" и посмотрите на логические операторы.

Вот список операторов С#.

Мой код:

if (title == "User greeting" || "User name") {do stuff};

и моя ошибка:

Ошибка 1 Оператор '||' не может быть применяется к операндам типа "bool" и 'string' C:\Documents and Settings\Sky Просмотр Barns\Мои документы \Visual Studio 2005\Projects\FOL Ministry\FOL Министерство \Downloader.cs 63 21 FOL Министерство

Вам нужно сделать это вместо:

if (title == "User greeting" || title == "User name") {do stuff};

Оператор OR оценивает выражения с обеих сторон одинаково. В вашем примере вы работаете с выражением title == "User greeting" (bool) и выражением "User name" (строка). Они не могут быть объединены напрямую без приведения или преобразования, поэтому вы получаете ошибку.

Кроме того, стоит отметить, что оператор || использует "оценку короткого замыкания". Это означает, что если первое выражение оценивается как true, второе выражение не оценивается, потому что оно не должно быть - конечный результат всегда будет true. Иногда вы можете воспользоваться этим во время оптимизации.

Последнее замечание - я часто записываю свои условные выражения с вложенными круглыми скобками:

if ((title == "User greeting") || (title == "User name")) {do stuff};

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

Ответ 2

Оператор OR является двойной трубой:

||

Так выглядит:

if (this || that) 
{
  //do the other thing
}

EDIT: Причина, по которой ваша обновленная попытка не работает, заключается в том, что логические операторы должны отделять действительные выражения С#. Выражения имеют операнды, а операторы и операторы имеют порядок приоритета.

В вашем случае сначала выполняется операция ==. Это означает, что ваше выражение оценивается как (title == "User greeting") || "User name". || оценивается далее. Поскольку || требует, чтобы каждый операнд был логическим выражением, он терпит неудачу, потому что ваши операнды являются строками.

Использование двух отдельных булевых выражений гарантирует, что ваш оператор || будет работать правильно.

title == "User greeting" || title == "User name"

Ответ 3

вам нужно

if (title == "User greeting" || title == "User name") {do stuff};

Ответ 4

Только для полноты, || и && являются условной версией | и операторы.

Ссылка на спецификацию ECMA С# Language здесь.

Из спецификации:

3 Операция x || y соответствует операция x | y, за исключением того, что y является оценивается только в том случае, если x является ложным.

В версии | оцениваются обе стороны.

Оценка коротких замыканий условной версии и поэтому позволяет использовать такой код:

if (x == null || x.Value == 5)
    // Do something 

Или (без каламбура), используя ваш пример:

if (title == "User greeting" || title == "User name") 
    // {do stuff} 

Ответ 5

Или is ||

И есть &&

Обновление для измененного вопроса:

Вам нужно указать, с чем вы сравниваете, в каждом логическом разделе инструкции if.

if (title == "User greeting" || title == "User name") 
{
    // do stuff
}

Ответ 6

Условным или оператором является ||:

if (expr1 || expr2) {do stuff}

if (title == "User greeting" || title == "User name") {do stuff}

Условный (OR) и его части являются булевыми выражениями.

MSDN перечисляет операторы С# в порядке приоритета здесь http://msdn.microsoft.com/en-us/library/6a71f45d.aspx. И страница MSDN для булевых выражений - http://msdn.microsoft.com/en-us/library/dya2szfk.aspx.

Если вы только начинаете изучать программирование, вы должны прочитать "Условные заявления" из вводного текста или учебника. Кажется, что это охватывает большинство основ: http://www.functionx.com/csharp/Lesson10.htm.

Ответ 7

Смотрите Операторы С# для операторов С#, включая OR, который является ||

Ответ 8

Причина, по которой это неверно:

if (title == "User greeting" || "User name") {do stuff};

заключается в том, что это высказывание

Если название равно строке "Приветствие пользователя"

или просто "Имя пользователя" (не если название равно строке "Имя пользователя" ). Часть после вашего или будет похожа на запись

if ("User name")

который С# не знает, что делать. Он не может понять, как получить логическое значение из "Имя пользователя"

Ответ 10

В формате, если

if (this OR that) 

this и that являются выражениями без значений. title == "aaaaa" является допустимым выражением. Кроме того, OR не является допустимой конструкцией в С#, вы должны использовать ||.

Ответ 11

ИЛИ используется как "||"

 if(expr1 || expr2)
 {
    do something
 }