if 结构和switch结构的相同点和不同点

作者&投稿:迪欢 (若有异议请与网页底部的电邮联系)
if 结构和switch结构的相同点和不同点~

当然不是
例如如下代码
#include
main()
{
int
a=1;
switch(a)
{
case
1:printf("1");
case
2:printf("2");
}
}
没有break的话,输出结果会是12
但是如果在每句case中加入break,那就只会输出1
也就是说虽然不加break语法上没有错,但是就起不到选择执行的作用了,只是第一次判断,然后依次向下执行语句,懂了么
这么说吧,case只是一个“标签”,只在switch第一次执行判断时有用,比如以上代码,a值为1,所以跳转到标签case
1:上,然后执行case
1:后的语句,注意,此时所有case就相当于都不存在了,语句就会一直执行下去,知直到有break出现

switch 用作分支情况较多的判断,判断条件类型单一,只有一个入口,在分支执行完后(如果没有break跳出)不加判断的执行下去,if 嵌套的分支主要适合于分支情况较少的分支结构,判断类型不是单一 只要一个分支被执行后,后边分支的不加选择的跳过

相同点:都是分支结构
不同点:if 结构只有两条出路YorN
而switch结构可以有多条出路