2014-01-22 164 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虽然你的尝试。确保你发布正确和编译的代码。 –