2012-12-30 53 views
-1

據我所知,迄今爲止,我可以使用switch語句並將其用作'或'運算符。例如:是否可以使用開關語句來獲得'和'操作

switch(num) 
case 1: 
case 2: 
printf("One or Two"); 

它就像

if(num==1 || num==2) 
printf(""One or two); 

是否有可能修改switch語句,並把它作爲而非OR?

+3

不要使用'switch'作爲花式OR。這不是爲了那個。 – Pubby

+0

Tq @Pubby迴應你的評論..我會記住..再次Tq –

+4

'num'既是'1' **又是**'2'? –

回答

7

變量不能同時保存兩個值。

num == 1 & & num == 2總是錯誤的。

這個問題有意義嗎?還是我錯過了觀點?

+1

不,這個問題沒有意義 –

+0

@santos tq。其實我的老師正在談論使用開關函數作爲操作符思考整個夜晚。現在我可以告訴他選擇正確的單詞,因爲它不能完成,除了或者 –

+0

@ K-ballo tq。實際上,我的老師正在談論使用開關功能作爲操作員一整個晚上的想法。現在我可以告訴他選擇正確的詞,因爲除了OR –

3

De Morgan's law通常是OR或AND之間轉換的關鍵。爲一個C表達式,它是

!(A || B) == (!A && !B) 

switch語句可以具有default情況下,當沒有其他條件都滿足拍攝。如果它是您已經提供的OR案例的唯一替代方案,則由於與OR相反,它自動成爲De Morgan的AND案例。

switch(num) { 
case 1: 
case 2: 
    printf("One or Two\n"); 
    break; 
default: 
    printf("Not one AND not two\n"); 
    break; 
} 

正如已經提到的,這是唯一可以使AND有道理的方法,因爲一個變量不能一次成爲兩個數字。

+0

+1之外不能完成。對De Morgan定律的引用非常好。 – WhozCraig

+0

感謝您的答覆 –

+1

@AishishSai如果您覺得這是有見地的,請點擊向上箭頭。如果您覺得它提供了最佳答案,請點擊對號。 – Potatoswatter

相關問題