备注:本文章是通过我刷题得到的领会,并不一定正确,欢迎指教。
一.分支(针对于switch与if或ifelse)
区别一:使用方法
分支语句switch就像是根据数据本身进行分类,如:
switch (num)
{
case 1:
printf("音乐爱好者\n");
break;
case 2:
printf("寝室乱不乱豪哥说的算\n");
break;
case 3:
printf("小帅哥\n");
break;
case 4:
printf("寝室暖男\n");
break;
default:
printf("输入错误\n");
}
应用场景主要为:分类的依据主要为数据本身的不同,并且不需要进行外界的处理,同时数据本身应该具有多样性。
分支语句ifelse就像是根据数据的处理结果进行分类
if (guess<ret)
{
printf("猜小了\n");
}
else if (guess>ret)
{
printf("猜大了\n");
}
else
{
printf("猜对了\n");
break;
}
应用场景主要为:分类的依据是根据数据处理后的结果,对于数据本身没有明确要求。
区别二:分支组成结构
从表达式的类型来看:
switch的表达式必须是整型或字符,而ifelse则没有限制。
从表达式的结构来看:
switch的表达式是一个整型变量,ifelse往往是一个判别式
(例子见上图)
二.循环(针对于while,for,dowhile循环)
循环里必须具备一个变量,才能使循环进行下去。
先给出三者的循环演示图:
while:
expr是表达式,stmt是循环语句
for循环:
expr1是初始化,expr2是判断,expr3是调整
do while循环:
以上图表都很清楚,这里只谈两点。
1.三个循环式子的执行情况:
while循环和for循环都是先判断,等进入循环语句后再进行调整。但由于调整的位置不同,导致当执行continue时结果不同。
while循环执行continue时不会进行数值调整,当for循环执行continue时依然会进行数值的调整。
dowhile循环则如图所示,在执行continue时不会进行表达式处理
2.三个循环的应用场景:
while循环:1.适用于只进行循环,不需要对数值进行处理
2.初始化较麻烦,并且没有必要初始化。
for循环:1.对循环进行简化。
2变量为单一变量,或者变量不复杂。
dowhile循环:1.在条件要求必须执行一次的情况下使用
日期9.26初写