簡體   English   中英

else if 怎么寫成邏輯語句?

[英]How to write else if as logical statement?

我想寫一個 if-else 語句作為邏輯語句。 我知道:

if (statement1){
   b=c
}
else{
   b=d
}

可以寫成:

b=(statement1 && c)||(!statement1 && d)

但是如何將以下 if-else 語句編寫為合乎邏輯的?:

if (statement1){
   b=c
}
else if (statement2){
   b=d
}
else{
   b=e
}

我想到了類似的東西:

b=(statement1 && c)||(statement2 && d)||((!statement1&&!statement2) && e)

如果已經有關於此的帖子,我很抱歉。 我已經嘗試過,但找不到與我的問題類似的任何東西。

與所有邏輯語句構建一樣,在這里創建真值表是最容易的。 你最終會得到:

+--+--+--------+
|s2|s1| result |
+--+--+--------+
| 0| 0|   e    |
+--+--+--------+
| 0| 1|   c    |
+--+--+--------+
| 1| 0|   d    |
+--+--+--------+
| 1| 1|   c    |
+--+--+--------+

如此簡單,那將是

(!s1 & !s2 & e) || (!s2 & s1 & c) || (s2 & !s1 & d) || (s1 & s2 & c)

這可以通過組合兩個c結果並刪除s2來簡化:

(!s1 & !s2 & e) || (s2 & !s1 & d) || (s1 & c)

(請注意,這在 C++ 中會更快,並將if語句與s1 & c作為第一項更接近。如果評估這些值中的任何一個會導致外部影響,這將特別重要)


請注意,您構建的內容,

(statement1 && c)||(statement2 && d)||((!statement1&&!statement2) && e)

如果statement1為真, c為假,並且statement2d都為真,則 function 將不正確(當你應該為假時,你會得到真的結果)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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