我知道& &這裏是邏輯運算符,左邊和右邊的條件都是操作數,對不對? Like:x> y && z == 5 - 這個表達的部分是如何調用的?
1 + 1是一個表達式,其中+是操作符,數字是操作數。我只是不知道條件本身是否也被稱爲操作數,因爲它是由操作員進行比較的。我想是。+
感謝
我知道& &這裏是邏輯運算符,左邊和右邊的條件都是操作數,對不對? Like:x> y && z == 5 - 這個表達的部分是如何調用的?
1 + 1是一個表達式,其中+是操作符,數字是操作數。我只是不知道條件本身是否也被稱爲操作數,因爲它是由操作員進行比較的。我想是。+
感謝
哪些部分叫什麼?
>
,&&
和==
都是運營商。操作數是傳遞給操作符的值。 x
,y
和z
是初始操作數。一旦對x > y
和z == 5
進行了評估,那些布爾結果將用作運算符&&
的操作數,這意味着表達式本身不是&&
的操作數,評估這些表達式的結果是操作數。
當你把操作數和運營商一起,你會得到一個表達式(即x > y
,z == 5
,boolResult == boolResult
)
他們是如何評估?
在大多數(如果不是全部的話)語言x > y
將首先評估。
在支持短路的語言中,如果x > y
爲假,評估將停止。否則,接下來是z == 5
。
同樣,在支持短路的語言中,如果z == 5
爲假,評估將停止。否則,&&
將會持續。
>
,&&
和==
都是運營商。操作數是傳遞給操作符的值。 x
,y
和z
是初始操作數。一旦對x > y
和z == 5
進行了評估,那些布爾結果將用作&&
運算符的操作數。
如果你的問題真的是&&
的左右部分被調用,我會說「表達式」,也許是「布爾表達式」。
在c#中& &是一個運算符,左邊和右邊是表達式。在if語句中,如果左邊的計算結果爲真,則永遠不會對其進行評估。
你確定嗎?我不認爲它們被稱爲表達式,因爲表達式會導致錯誤或真實。我認爲操作員必須使用操作數進行操作。 – Bliznak 2010-08-12 13:04:15
你說得很對,這是一個表達。但是,如果您要在if語句中單獨使用左側和右側,則它們將成爲表達式。所以,你可能會說你在一個操作符之間有兩個子表達式。 – 2010-08-12 19:04:53
這是一個布爾比較表達式,它由兩個獨立的布爾比較表達式組成。
取決於語言,這是如何解釋取決於運營商的優先順序。由於它看起來像一個類似C的方言,我假設& &是短路AND。(更多解釋here)。
的運算順序將從左到右分別爲平等的測試(>,> =,< =,==,!=)有相同的優先級,以布爾運算(& &,||)。
x> y會被計算出來,如果爲真,則計算z == 5,然後將第一個和第二個結果進行「與」運算。但是,如果x> y爲假,由於短路,表達式將立即返回錯誤。
條件,或在||
情況:替代
你是正確的,x>y
和z==5
是操作數,而&&
是運營商。另外,這兩個操作數都包含自己的操作數和操作符。這些被稱爲複雜的操作數
所以:
x>y
和z==5
是操作數的運營商&&
x
和y
是操作數的操作>
z
和5
是操作數的運營商==
關於各組成部分,以及如何給它們命名:
==
和>
是比較運算符,它比較兩個操作數的值。==
是等於運算符,如果左操作數等於右操作數,則計算結果爲真。>
是大於運算符的,如果左操作數大於右操作數,則計算結果爲真。&&
是邏輯運算符,特別是邏輯AND。如果左邊和右邊的操作數都爲真,它的計算結果爲true。當提到每個操作數,它是標準的由他們位置引用它們,即左操作數右操作 - 雖然沒有「正式」的名字 - 第一和第二個操作數的工作同樣好。請注意,一些運營商如!
僅具有一個操作數,並且有的甚至有3(三元運算符,它的形式爲condition ? true_value : false_value
謝謝。無論如何,說「操作員左側的情況」是否正確?或者我需要說操作符左邊的操作數。不要介意語法,只是意思:) – Bliznak 2010-08-12 13:05:36
一個替代方案將是轉向grammar of C#
它指出以下:
conditional-and-expression && inclusive-or-expression
只是概括爲「表達」可能是不夠準確:)
有趣的多少upvotes這個答案得到。你們誰都沒有讀過這個問題。 :) – scy 2010-08-12 12:59:29
這是因爲它不清楚問題是什麼。我添加了更多信息來涵蓋我看到的兩個問題(標題中的一個,問題的另一個問題)。 – 2010-08-12 13:00:31