[英]Which logic gate most correctly identifies with the following c# statement?
我只是在玩一個生成邏輯真值表的控制台應用程序,然后點擊以下c#語句
bool a, b, c; //get inputs
if(a = b = c)
{
Console.WriteLine("sucess"); // print if 1
}
語句if(a = b = c)
僅在bool c
為true時才返回true(編輯:我的期望是,所有輸入都必須相同才能成功)。 有人可以解釋該語句的執行方式嗎?
編輯:我出於好奇而看到了IV4s的答案,這是if( a== b == c )
我編譯了它,它起作用了。 編輯2:亨克是正確的。 a = false,b = true,c = false返回true。
=
是分配運算符,與==
(比較運算符)不同。 這意味着在的情況下a = b = c
statment它分配的值c
到b
,然后到a
,這將在后面通過評估if
。
評估如下:
b = c;
a = b;
if (a) { }
如果要確保所有變量都相等,則需要執行以下操作:
// no need to check if a == c
if (a == b && b == c) { }
就像@ I4V在您的IF
所說的那樣,您將c的值分配給B,然后分配給A。因此,由於您沒有進行任何邏輯運算,因此它總是求值為true
。
=
是分配,而==
用於邏輯運算。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.