if else与if elseif的区别
单路(if)和多路(if else)中多个If条件语句会全部执行一遍再将结果显示(影响效率)
int a=4; if (a == 4) { printf("a=4"); //尽管此时已经满足条件,但是之后的if还会进行判断 } if (a==1) { printf("a=1"); } if (a == 2) { printf("a=2"); } if (a == 3) { printf("a=3"); }
多路分支(if elseif) 相当于if嵌套在else中,满足其中一个条件便不再执行之后的判断(提高效率节省时间)
int a=4; if (a == 4) { printf("a=4"); } else if (a == 3) { printf("a=3"); } else if (a == 2) { printf("a=2"); } else if (a == 1) { printf("a=1"); } else { printf("找不到符合条件"); }
switch结构
int choice; printf("请输入中奖号码:"); scanf("%d", &choice); switch (choice) //choice 只能是整型或者字符型 { case 5: //优化处理 将概率高的情况放在判断的顶端 printf("谢谢惠顾\n"); break; case 4: // case后接常量或者常量表达式(如1 + 9) 但是case之间不能重复 printf("恭喜你获得纪念品\n"); break; case 3: printf("恭喜你获得三等奖\n"); break; case 2: printf("恭喜你获得二等奖\n"); break; case 1: printf("恭喜你获得一等奖\n"); break; default: printf("空白\n"); break; }
小节:
1.break 只出现在循环和switch中
2.如果没有break switch不再匹配,直接往下执行,直到遇到break default
3.if else if 常常用来表达范围的选择 switch常常用来表达点的选择
4.优化:
无论 if else if还是switch 用的都是长方形版本(非梯形版本),所有的条件处于水平状态
最常用的条件选择放到最前,就是所谓的优化
2.如果没有break switch不再匹配,直接往下执行,直到遇到break default
3.if else if 常常用来表达范围的选择 switch常常用来表达点的选择
4.优化:
无论 if else if还是switch 用的都是长方形版本(非梯形版本),所有的条件处于水平状态
最常用的条件选择放到最前,就是所谓的优化