switch case语句和if的区别

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了switch case语句和if的区别相关的知识,希望对你有一定的参考价值。

参考技术A

switch case语句和if的区别

if和switch都是条件判断语句,在效果上是没有什么差别的,而不同,我们可以从效率上来讲~ 举一个很简单的例子: if(A>B) A=B; else B=A; 如果将这个例子放在switch 语句中,也并不是不能实现,但是实现起来可能会比较麻烦一些,因为在switch语句中 case中要求的是常量,一般是不能进行逻辑判断的, 所以这也是if语句优于switch语句的地方! 但是如果您判断的都是几个常量的资料,我建议您最好采用switch语句,如下: switch(A) case:xxxx /程式程式码 break; case:xxxxxx /程式程式码 break; :csdnit./ 这样的语句,虽然if语句也是能实现的,但是效能就比switch差的有点远了

IF和CASE语句的区别

If 和case语句是VHDL里边两个非常重要的语句,如何用好她们来描述逻辑电路和时序电路是学会VHDL程式设计重要的一步。if 和 case语句有一定的相关性,也有一定的区别。相同的地方是他们可以实现几乎一样的功能。下面主要介绍一下她们之间的区别。
If 语句每个分支之间是有优先顺序的,综合得到的电路是类似级联的结构。Case语句每个分支是平等的,综合得到的电路则是一个多路选择器。因此,多个if elseif语句综合得到的逻辑电路延时往往比case语句要大。一些初学者在一开始往往喜欢用if elsif语句,因为这种语法表达起来更加直接,但是在执行速度比较关键的专案中,使用case语句的效果会更好。

请问switch语句中 case 1和case \'1\'有什么区别吗

case 1 表示switch()匹配的是整型
case \'1\' 匹配的是字元型

C程式中switch语句里case \'1\'和case 1有什么区别

可能之一 吧,分支 之一
switch(表示式)

case 常量表达式1:
语句1;
break;

case 常量表达式2:
语句2;
break;
……
case 常量表达式n:
语句n;
break;
default:
语句n+1;
break;

用if巢状和用switch语句的区别?

如果用IF语句,可能结构会比较复杂。
C语言提供了switch语句直接处理多分支选择。

switch case是什么语句

switch (表示式)
case 值1 : 语句1
break;
case 值2 : 语句2
break;
...
default : 语句n
break;

从表示式值等于某个case语句后的值开始,它下方的所有语句都会一直执行,直到遇到一个break为止。随后,switch语句将结束,程式从switch结束大括号之后的第一个语句继续执行,并忽略其他case。
假如任何一个case语句的值都不等于表示式的值,就执行可选标签default之下的语句。
假如表示式的值和任何一个case标签都不匹配,同时没有发现一个default标签,程式会跳过整个switch语句,从它的结束大括号之后的第一个语句继续执行。

sql语句中,decode和case when语句的区别有哪些

select case A when \'01\' then B when \'02\' then C when \'03\' then D end from t1

switch的case语句里能再巢状swich语句吗

能 #include void main() char ind=\'a\'; char d=\'b\'; switch(ind) case \'a\': printf("press another key\\n"); switch(d) case \'b\': printf("b\\n"); break; break; default: break; /* #include #include typedef BOOL (*FtpCommand).

if else 语句与switch的用法区别

switch用来根据一个整型值进行多路分支,并且编译器可以对多路分支进行优化,所以在多路分支时用switch比if..else if .. else结构要效率高。

PASCAL语言中IF语句与CASE的区别

IF只能针对一个条件实现两个个分支,CASE可以根据一个表示式的值实现多个分支。
事实上几乎所有的CASE语句都可以用符合IF来实现,但是那样程式不直观,书写的内容也较多。
相反,CASE语句不能取代各种IF语句。

第二次 实验报告

c语言程序报告

一、if语句的应用

1、掌握c语言逻辑运算和关系运算的规则;
2、学会正确的使用关系表达式和逻辑表达式;
3、掌握if_else语句的使用方法;

二、switch/case语句的应用

1、掌握算术运算符和运算规则;
2、掌握switch/case语句的应用;

三、switch/case语句嵌套if语句的使用方法;

1、学会正确的使用关系表达式和逻辑表达式;
2、switch/case语句嵌套if语句的使用方法。注意switch语句的控制流程,在switch语句中break语句的用法;
3、switch/case结构与if/else嵌套结构之间的转换;

四、switch/case结构的嵌套应用

1、switch/case结构的嵌套应用;
2、break语句与continue语句的用法;

五、分析程序

1、分析程序结构

4.3.1实验练习:

问题描述:读入3个分别表示箱子长、宽、高的整数值,判断并输出该箱子是正方体还是长方体。
#include<stdio.h>
int main()
{  int l,w,h;
printf("请输入箱子的长,宽,高:
");
scanf("%d%d%d",&l,&w,&h);
if(l=w=h)
printf("该箱子是正方形。
");
else
printf("该箱子是长方形。
");
return 0; 
}

技术图片

4.3.2实验练习:

#include<stdio.h>
int main()
{
    int x,y,z,d,m;
    float n,s;
    printf("请输入打印纸,墨盒,光盘的数量:
");
    scanf("%d,%d,%d",&x,&y,&z);
    n=18*x+132*y+4.5*z;
    if(n>=500)
    d=10;
    else
    {   m=n/100; 
        switch(m) {
        case 1:d=5; break;
        case 2:d=6; break;
        case 3:d=7; break;
        case 4:d=8; break;
        }
    }
    s=n*(100-d)/100;
    printf("应付款数:%.2f
",s);
}
技术图片
问题分析:一开始不会用if语句和switch语句的嵌套结构,而且对switch语句的结构不够熟悉,将case和后面的数字写在一起了最后输出不出来

4.3.3实验练习:

#include<stdio.h>
int main()
{ int year,month,days;
 printf("please enter year and month :
");
 scanf("%d%d",&year,&month);
 switch(month)
 {case 2:if (year%4==0&&year%100!=0||year%400==0)
     days=29;
else
    days=28;break;
 case 1: 
 case 3:
 case 5:
 case 7:
 case 8:
 case 10:
     
 case 12:days=31;break;
 case 4:
 case 6:
 case 9:
 case 11:days=30;break;        
 }
printf("%d年%d月有%d天
",year,month,days);
return 0; }
技术图片
4.3.4实验练习:
#include <stdio.h>
int main()
{
int x,n,y;
float sum;
printf("请选择:1.日用品 2.文具 3.食品
");
scanf("%d",&x);
switch(x)
{
case 1:printf("请选择:1.牙刷(3.5支) 2.牙膏(6.2元支)
");
       printf("        3.肥皂(2元支)  4.毛巾(8.6元条)
");
       scanf("%d",&y);
       printf("数量?");
   scanf("%d",&n); 
       switch(y)
       {
           case 1:sum=3.5*n;break;
           case 2:sum=6.2*n;break;
           case 3:sum=2*n;break;
           case 4:sum=8.6*n;break;
   }
   break;
case 2:printf("请选择:1.笔(3支) 2.笔记本(1.2元个)
");
       printf("        3.文件夹(12元个)  4.文具盒(8.6元个)
");
       scanf("%d",&y);
       printf("数量?"); 
       scanf("%d",&n);
       switch(y)
       {
           case 1:sum=3*n;break;
           case 2:sum=1.2*n;break;
           case 3:sum=12*n;break;
           case 4:sum=8.6*n;break;
   }
   break;
case 3:printf("请选择:1.白糖(3.6包) 2.盐(1元包)
");
       printf("        3.饼(2元个)  4.方便面(3.6元包)
");
       scanf("%d",&y);
       printf("数量?"); 
       scanf("%d",&n);
       switch(y)
       {
           case 1:sum=3.6*n;break;
           case 2:sum=1*n;break;
           case 3:sum=2*n;break;
           case 4:sum=3.6*n;break;
   }
   break;              
}
printf("总计:%.2f元
",sum);

}
技术图片
4.3.5实验练习:
#include<stdio.h>
#include<math.h>
int main()
{
double x=1000/3.0;
double y=x-333.0;
double z=3*y-1.0;
printf("x=%lf
",x);
printf("y=%lf
",y);
printf("z%lf
",z);
if(z==0) printf("z==0.
");
else printf("z不等于0.
");
}
#include<stdio.h>
int main()
{
    int num=20;
    if(5<num&&num<10)
    printf("%d in range (5,10)!
",num);
    else
    printf("%d out of range (5,10)!
",num);
 } 

三、实验小结

经过本次的五个实验操作后我发现自己对C语言的理解加深了,知道了if语句和switch语句的区别和使用方法的不同,if语句的条件后面不能加分号,同时也知道if语句和switch语句可以同时嵌套使用,也更加了解了计算机的思维方式,以后我要花更多的时间在对代码的理解上而不是一味的只针对一题而不去深入理解。

 

以上是关于switch case语句和if的区别的主要内容,如果未能解决你的问题,请参考以下文章

switch,break和continue区别,函数调用方法,默认类型提升

vb中啥情况用If 和case语句有啥区别

switch语句和switch-case与if-else之间的转换

switch 和 if else if else 有什么区别

为啥我在switch-case语句下嵌套if-else语句会报错?怎么改?

C语言 回滚技术 switch case