C语言中if和switch有什么区别?

如题所述

if和switch的主要区别如下:


1)if的括号内的表达式可以分别是布尔类型的合法表达式、可以是所有大于0的正整数为true,反之为小于等于0的正整数为false、可以是常量、枚举;而switch括号内也符合前面if提到的外,就是当圆括号内为正整数只能是0或1,其它的正整数属于 default范围。这点可以看如下代码:

switch (2)  // 除了0和1的其它正整数
{
case false:  // 对应0
printf("false\n");
break;
case true:  // 对应1
printf("true\n");
break;
default: // 对应非0和1以外的正整数
printf("其它\n");
break;
}

2)尽管if括号内也支持常量、枚举但也是有前提的那就是常量或枚举必须要显式给出相应的数值。而switch则不必;

3)switch适合处理判断分支较多的情况下(代码可读性好),而if适合处理判断分支较少的情况下(反之代码可读性差,容易出现漏判或重复判断)。

温馨提示:内容为网友见解,仅供参考
第1个回答  2012-05-12
switch( 表达式)//这个地方不能加分号,表达式必须是字符型或整型
{ case E1 : 语句组 1; //case 与E1(即常量)之间用空格分隔
case E2 : 语句组 2;// case后的常量不能相同且常量后必须加冒号
…….
case En : 语句组 n;
[default: 语句组 ;]
}
执行过程:
一、计算
二、找case
三、从找到的case开始,往下全部执行
四、若没找到case,则从default开始往下全部执行,
若没default则结束switch语句。

if是选择结构,有三个形式,它们执行是条件成立只会选一个执行。
第一个:if (表达式)
语句;
第二个:if (表达式)
语句1;
else
语句2;

第三个:
if ( 表达式1 )
语句1;
else if (表达式2 )
语句2;
else if (表达式3 )
语句3;
…...
[ else
语句; ]本回答被网友采纳
第2个回答  2012-05-12
if 直接是选择的意思
如果(),执行()
否则,()
永远是否则后面没有条件,而且if 和 else 成对出现
switch 可以是多项选择且直接跳转
switch a : A
b : B
c : C
等等
这两个差很多~
你可以再仔细看看书
能用到SWITCH 语句的话,用IF 就很繁琐
但是简单的选择用IF 比较好了

希望能帮到你哦,请您采纳,刚刚玩,在做任务
第3个回答  2015-05-16
看情况。
if判断条件,处理逻辑表达式。
switch 通常处理算术表达式,或字符,当它等于什么什么,转向做什么。switch相当开关

如果“比较整数”,i1 是否大于 i2, 当然用if
如果决定转向,例如 i=1 画直线,i=2 画曲线,i=3 画圆,i=4 画虚线直线, i=5 画虚线曲线, i=6 画长方形 i=其他值 返回重选
这当然用switch,switch 执行快。
第4个回答  2012-05-12
使用的语句不一样呀,if的条件更多一些,switch后面必须有case 而且cas后面必须是规定的三种类型的数据!

if语句和switch语句的区别有哪些?
if语句可以针对表达式的值进行计算和比较,而switch语句只能针对常量进行比较。switch语句的每个分支都有自己的缩进,更容易阅读和维护,而if语句可能需要更多的括号和缩进来实现同样的效果。if语句可以配合三元运算符使用,而switch语句不可以。总的来说,if语句更适合实现复杂的条件判断和转换,而switch语句更...

C语言中if和switch有什么区别?
if和switch的主要区别如下:1)if的括号内的表达式可以分别是布尔类型的合法表达式、可以是所有大于0的正整数为true,反之为小于等于0的正整数为false、可以是常量、枚举;而switch括号内也符合前面if提到的外,就是当圆括号内为正整数只能是0或1,其它的正整数属于 default范围。这点可以看如下代码:switc...

C语言中switch和if的适用方面有什么区别
switch语句,可读性更好,整体流程看起来清晰明确。if语句适应性更强,可以处理更多的情况。所有的switch语句都可以写成if的形式,比如 switch(a){ case b:break;case c:break;default:break;} 可以写作 if(a==b)\/\/case b { } else if(a==c) \/\/ case c { } else \/\/default.{ } 但是...

switch语句是什么意思?和if语句有什么区别?
表达式n: 语句n, default: 语句n+1。switch 是分支语句,就是比较强大的if集;default为不满足所有的switch条件则后面的句子被执行。一般将default写在switch中的最后。C语言虽然没有限制 if else 能够处理的分支数量,但当分支过多时;用 if else 处理会不太方便,而且容易出现 if else 配对出错的...

C语言中switch和if的适用方面有什么区别?
if语句适应性更强,可以处理更多的情况。拓展:Switch:在一些计算机语言中是保留字,其作用大多情况下是进行判断选择。以C语言来说,switch(开关语句)常和case break default一起使用。在C#中,switch语句的控制表达式只能是某个整形(int,char,long等)或string。其他任何类型(包括float和double类型)只能...

c语言里面if和switch哪个效率高?同样比较整数的话
switch 通常处理算术表达式,或字符,当它等于什么什么,转向做什么。switch相当开关 如果“比较整数”,i1 是否大于 i2, 当然用if 如果决定转向,例如 i=1 画直线,i=2 画曲线,i=3 画圆,i=4 画虚线直线, i=5 画虚线曲线, i=6 画长方形 i=其他值 返回重选 这当然用switch,switch 执行...

C语言中switch和if语句那个执行效率更高?
两个的用法都不一样,一般if是写一个条件,switch是列举一些值来判断,看你需要哪种类型的,这两个一般没有说谁效率高的,像楼上说的那种情况,只要是正常人都会选择用if来写啦。如果是像那个经典的例子判断分数段来显示优良中差的,相信也没几个会用if来写。

C语言中if else语句与switch语句区别
1 两者本质的区别是 if-else语句更适合于对区间(范围)的判断,而switch语句更适合于对离散值的判断 2 示例 判断65分到85分之间的学生有哪些适合用if-else语句,因为[65,85]是区间 而判断一个学生的班级是一班、二班还是三班适合用switch语句,因为一班、二班、三班是离散值 3 扩展 所有的...

c语言里面if和switch哪个效率高?同样比较整数的话
最主要的还要看程序怎么写。不过switch看起来比较简洁,如果符合哪个条件就转向谁!if的话,如果是多层嵌套判断的话就比较麻烦了!

C语言的分支语句有哪几种?C语言分支结构的基本形式是什么,区别是什么...
C语言中的分支结构有三种:1、单分支结构 单分支结构的基本形式是:if( <条件表达式> ){ (语句块)} 2、双分支结构 双分支结构的基本形式是:if( <条件表达式> ){ 语句块1;} else { 语句块2;} 3、多分支结构 多分支结构又分为:“分支结构的嵌套”与“switch语句”(1)分支结构的嵌套的...

相似回答