2014-01-22 141 views
-7

b)將以下switch語句轉換爲if ... else語句。將以下SWITCH語句轉換爲IF ... ELSE語句

#include <stdio.h> 
void main() 
{ 
    char option; 
    int a; 
    printf("a.Addition\n b.Subtraction\n c.Multiplication\n d.Division\n"); 
    printf("Choose your option : "); 
    scanf("%c",&option); 

    switch(option) 
    { 
    case 'a': 
    case 'A': a=20+10; 
     printf("Addition process result:%d",a); 
     break; 
    case 'b': 
    case 'B': a=20-10; 
     printf("Subtraction process result:%d",a); 
     break; 
    case 'c': 
    case 'C': a=20*10; 
     printf("Multiplication process result:%d",a); 
     break; 
    case 'd': 
    case 'D': a=20/10; 
     printf("Division process result:%d",a); 
     break; 
    default: printf("Invalid option"); 
    } 
    printf("\nEnd of program"); 

} 

如何將其從SWITCH轉換爲IF ... ELSE? 這是我的考試 修訂問題,謝謝

+5

解決它,張貼它,我們將討論這一點。 – Maroun

+3

'這是我的考試修改問題' - 感謝你的殘酷誠實。 – devnull

+0

修改問題?然後可能會在課堂上討論;) –

回答

5

一個switch聲明可被看作是一系列if/else條款。下面是這應該有助於您解決具體問題的例子:

switch (x) 
{ 
    case 1: 
    case 2: 
     foo(); 
     break;  

    case 3: 
    case 4: 
     bar(); 
     break;  

    default: 
     blech(); 
     break;  
} 

變爲:

if (x == 1 || x == 2)   // case 1: 
{        // case 2: 
    foo(); 
} 
else if (x == 3 || x == 4) // case 3: 
{        // case 4: 
    bar(); 
} 
else       // default: 
{ 
    blech(); 
} 
0
if(option == 'a' ||option == 'A') //checks if option value is 'a' or 'A',in switch case you use case:a,and case:b 
    { 
    a=20+10;  
    printf("Addition process result:%d",a); 
    } 
else if(option == 'b' ||option == 'B')  
    { 
    a=20-10; 
    printf("Subtraction process result:%d",a); 
    } 
else if(option == 'c' ||option == 'C')  
    { 
    a=20*10; 
    printf("Multiplication process result:%d",a); 
    } 
else if(option == 'd' ||option == 'D')  
    { 
    a=20/10; 
    printf("Division process result:%d",a); 
    } 
else 
    { 
     printf("Invalid option"); 
    } 

我怎麼轉化:

1:中改變了所有cases有條件的陳述在if

例如:

switch(option) 
{ 
    case 'a': 
    case 'A':some statement; 
     break; 
} 

if(option == 'a' || option == 'A') 
    { 

    some statement; 
    } 
+2

請不要將完整的解決方案粘貼到作業或學習問題 - 給予提示,指導等,以幫助OP解決問題 - 他們將學到更多的方式。另外:格式化。 –

+0

@PaulR:當然,我在編輯 –

+0

我想知道誰降低了這個答案???? –

0
#include <stdio.h> 
void main() 
{ 
    char option; 
    int a; 
    printf("a.Addition\n b.Subtraction\n c.Multiplication\n d.Division\n"); 
    printf("Choose your option : "); 
    scanf("%c",&option); 

    if (option == 'a' || option == 'A') { 
     printf("Addition process result:%d",a); 
    } 
    elseif (option == 'b' || option == 'B') { 
     printf("Subtraction process result:%d",a); 
    } 
    elseif (option == 'c' || option == 'C') { 
     printf("Multiplication process result:%d",a); 
    } 
    elseif (option == 'd' || option == 'D') { 
     printf("Division process result:%d",a); 
    } 
    else { 
     printf("Invalid option"); 
    } 
    printf("\nEnd of program"); 

} 

這是你的問題的解決方案。

+1

這段代碼甚至沒有編譯我的m/c ..說elseif找不到? –

+0

-1:甚至沒有編譯,甚至在修復語法錯誤之後,它不會像OP代碼那樣運行。 –

+0

+1雖然你的嘗試。確保你發佈正確和編譯的代碼。 –