2011-09-13 180 views
1
CaptchaIsExist CaptchaIsValid = Result 
-------------- -------------  -------- 
    true    false  = false 

    Any other variations    = true 

現在怎麼寫邏輯有這些結果?它看起來很簡單,但我認爲還不夠。幫助需要具體布爾邏輯

+0

結果=!(CaptchaIsExist &&(!CaptchaIsValid)); –

回答

4

的替代@Binary杞人憂天的解決方案:

bool Result = CaptchaIsValid OR NOT CaptchaIsExist 

我覺得這更自然地表達邏輯,即當你讀它傳達預期邏輯。

+1

+1這是迄今爲止最具可讀性的一行。 –

+0

當'CaptchaIsValid = true'和'CaptchaIsExist = false'時,這不會導致'true',還是我錯過了某些東西? –

+0

如果驗證碼不存在,測試其有效性可能會失敗。假設語言使用短路評估,我認爲最好是扭轉測試順序。 –

1

不,這很簡單。

bool Result = not (CaptchaIsExist and not CaptchaIsValid) 
2

只要指定的條件false和應用not它...

not (CaptchaIsExist && not (CaptchaIsValid)) 
+1

+1用於解釋用於推導結果的方法。 – Heinzi

1
(not CaptchaIsExist) or CaptchaIsValid 
0

在C類僞代碼:

if (CaptchaIsExist && !CaptchaIsValid) then 
    return false; 
else 
    return true; 
0
Boolean result = ((CaptchaIsExist && !CaptchaIsValid)) ? false: true;