2010-08-12 85 views
2

我知道& &這裏是邏輯運算符,左邊和右邊的條件都是操作數,對不對? Like:x> y && z == 5 - 這個表達的部分是如何調用的?

1 + 1是一個表達式,其中+是操作符,數字是操作數。我只是不知道條件本身是否也被稱爲操作數,因爲它是由操作員進行比較的。我想是。+

感謝

回答

6

哪些部分叫什麼?

>,&&==都是運營商。操作數是傳遞給操作符的值。 x,yz是初始操作數。一旦對x > yz == 5進行了評估,那些布爾結果將用作運算符&&的操作數,這意味着表達式本身不是&&的操作數,評估這些表達式的結果是操作數

當你把操作數和運營商一起,你會得到一個表達式(即x > yz == 5boolResult == boolResult

他們是如何評估?

在大多數(如果不是全部的話)語言x > y將首先評估。

在支持短路的語言中,如果x > y爲假,評估將停止。否則,接下來是z == 5

同樣,在支持短路的語言中,如果z == 5爲假,評估將停止。否則,&&將會持續。

>,&&==都是運營商。操作數是傳遞給操作符的值。 x,yz是初始操作數。一旦對x > yz == 5進行了評估,那些布爾結果將用作&&運算符的操作數。

+4

有趣的多少upvotes這個答案得到。你們誰都沒有讀過這個問題。 :) – scy 2010-08-12 12:59:29

+1

這是因爲它不清楚問題是什麼。我添加了更多信息來涵蓋我看到的兩個問題(標題中的一個,問題的另一個問題)。 – 2010-08-12 13:00:31

1

如果你的問題真的是&&的左右部分被調用,我會說「表達式」,也許是「布爾表達式」。

0

在c#中& &是一個運算符,左邊和右邊是表達式。在if語句中,如果左邊的計算結果爲真,則永遠不會對其進行評估。

+0

你確定嗎?我不認爲它們被稱爲表達式,因爲表達式會導致錯誤或真實。我認爲操作員必須使用操作數進行操作。 – Bliznak 2010-08-12 13:04:15

+0

你說得很對,這是一個表達。但是,如果您要在if語句中單獨使用左側和右側,則它們將成爲表達式。所以,你可能會說你在一個操作符之間有兩個子表達式。 – 2010-08-12 19:04:53

0

這是一個布爾比較表達式,它由兩個獨立的布爾比較表達式組成。

取決於語言,這是如何解釋取決於運營商的優先順序。由於它看起來像一個類似C的方言,我假設& &是短路AND。(更多解釋here)。

的運算順序將從左到右分別爲平等的測試(>,> =,< =,==,!=)有相同的優先級,以布爾運算(& &,||)。

x> y會被計算出來,如果爲真,則計算z == 5,然後將第一個和第二個結果進行「與」運算。但是,如果x> y爲假,由於短路,表達式將立即返回錯誤。

1

條件,或在||情況:替代

0

你是正確的,x>yz==5是操作數,而&&是運營商。另外,這兩個操作數都包含自己的操作數和操作符。這些被稱爲複雜的操作數

所以:

  • x>yz==5是操作數的運營商&&
  • xy是操作數的操作>
  • z5是操作數的運營商==

關於各組成部分,以及如何給它們命名:

  • 兩個==>比較運算符,它比較兩個操作數的值。
  • ==等於運算符,如果左操作數等於右操作數,則計算結果爲真。
  • >是大於運算符的,如果左操作數大於右操作數,則計算結果爲真。
  • &&邏輯運算符,特別是邏輯AND。如果左邊和右邊的操作數都爲真,它的計算結果爲true。

當提到每個操作數,它是標準的由他們位置引用它們,即操作數操作 - 雖然沒有「正式」的名字 - 第一和第二個操作數的工作同樣好。請注意,一些運營商如!僅具有一個操作數,並且有的甚至有3(三元運算符,它的形式爲condition ? true_value : false_value

+0

謝謝。無論如何,說「操作員左側的情況」是否正確?或者我需要說操作符左邊的操作數。不要介意語法,只是意思:) – Bliznak 2010-08-12 13:05:36

2

一個替代方案將是轉向grammar of C#

它指出以下:

conditional-and-expression && inclusive-or-expression 

只是概括爲「表達」可能是不夠準確:)

相關問題