簡體   English   中英

下列哪個c#語句最正確地標識了哪個邏輯門?

[英]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它分配的值cb ,然后到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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM