if语句-执行';或者';C#mean中的运算符“;和/或“;或“;一个或另一个”;
本文关键字:另一个 一个 运算符 执行 语句 或者 C#mean if | 更新日期: 2023-09-27 17:59:41
这是一个非常简单的问题,但我想澄清一下。
举以下例子:
if (FirstName == "Bert" || Surname == "Berterson")
在这种情况下,||(或)运算符是否意味着:
A。
--或--
B。"如果此人的名字是Bert或姓氏是Berterson,但不是两者都有"(即"Bert Berterson"不符合条件,而"Sally Berterson"answers"Bert Billhouse"符合条件)
谢谢你抽出时间,我希望这是有意义的,并为这样一个简单的问题道歉
C#中的||
运算符是一个包含的OR,它是短路。这对你的例子来说意味着:
if (FirstName == "Bert" || Surname == "Berterson")
如果
FirstName
是"Bert"
,则整个表达式是true
,并且第二部分是,甚至未求值。如果
FirstName
不是"Bert"
,则评估第二部分并确定整个表达式的结果。
对于异或(XOR),请使用^
运算符:
if ((FirstName == "Bert") ^ (Surname == "Berterson"))
如果恰好两个条件中的一个是true
,则这将仅是true
。
"Or"表示逻辑或,如果至少有一个语句为true,则为true。
要表达"xor",您必须使用^
它是第一个(在大多数编程语言中),意思是逻辑或。您描述的另一个运算符称为xor(exclusive or),它由C#^
运算符表示。
请注意,||
(和&&
)是"短路"的,这意味着它们的求值延迟。例如,在a || b
中,如果a
为true,则C#根本不检查b
。这与按位或运算符|
形成对比,后者总是计算两个操作数。
它是一个逻辑OR,意味着如果第一个条件、第二个条件或两者都满足,则结果为true。
来自文件:
条件OR运算符(||)对其布尔操作数执行逻辑OR。如果第一个操作数的计算结果为true,则不计算第二个操作数。如果第一个操作数的计算结果为false,则第二个运算符确定OR表达式作为一个整体的计算结果是true还是false。
https://msdn.microsoft.com/en-us/library/6373h346.aspx