2013-11-28 419 views
0

這是一個vbscript代碼。請解決這個問題,並給我理由。請解釋並解釋

a = 10 
b =10 
c = empty 
d= empty 
Msgbox a=b=c=d 

預期結果False。 實際結果爲真。請解釋一下。

問候 克里希南

回答

0

你可以考慮使用這樣的嘗試什麼:

a = 10 
b =10 
c = empty 
d= empty 
Msgbox a=b AND a=c AND a=d 

我認爲這是你的代碼引起的分配,而不是一個比較。即使VBScript對兩者都使用=符號,分配將始終返回true。

+0

號含有「等於」總是登錄表達式是在VBScript的比較。 – TheBlastOne

4

所有比較運算符都從左到右進行評估,並具有相同的優先級。這裏的問題是「empty = false」。如果你想檢查一個var是否真的是空的,你必須使用isEmpty函數。在邏輯比較中empty = false。

人體工程學的表達式進行求值:

1. a=b [true] 
2. (a=b)=c [false] because c is empty and false 
3. ((a=b)=c)=d because d is false and 2. is false 

埃爾戈假=假是真的;-)

+0

嗨。這次真是萬分感謝。我只是懷疑它是如何在空值和布爾值之間進行比較的。謝謝你 – Krishiyers

+0

@ user2906636如果這個答案是最有用的答案,接受它,所以答案被標記爲「回答」,尊重點:-)被授予。 – TheBlastOne