①我们应当知道结构一般有:顺序结构、选择结构、循环结构三种,所谓顺序结构,就是代码自上而下运行,这是毋庸置疑的。其次就是选择和分支结构。下面逐一介绍。

②:分支语句:if语句;switch语句。

③:循环语句:while;do while;for

④:if语句有三类格式:if(表达式)             if(表达式)                            if(表达式1)

                                        语句;                    语句1;                                语句1;

                                                                   else                                     else if(表达式2)

                                                                       语句2;                                 语句2;

                                                                                                               else

                                                                                                                      语句3;

⑤:提一个经典错误:if(18<=age<28)这个表达式是否为真?答案是必为真!因为从左至右执行表达式,18<=age,执行结果为0或1,0或1必<28,所以该表达式必为真,也即必进行该if语句下的代码。正确写法应当为:18<=age&&28>age;

⑥:如果要执行多个语句,注意使用代码块,也即一对{}.

⑦:一个判断题:打印的是hehe还是haha?

2021.08.12自学C(打卡第7天)_自学C打卡第7天

 

编译结果:

2021.08.12自学C(打卡第7天)_自学C打卡第7天_02

也就是说啥都没打印,这是因为else总是与最近的if进行匹配,这叫悬空else的问题,那么这个else与上面的第二个if匹配后,导致第一个if是一个单语句,而没有else的,所以整个程序不会打印出啥的!除非用代码块隔开,如图:

2021.08.12自学C(打卡第7天)_自学C打卡第7天_03

⑧:一个小技巧:未来判断if()表达式时,内容为:判断一个常量和一个变量是否相等时,最好把常量放在前面,这样可以避免出现少写一个=的问题,因为只写一个=,是赋值语句,而我们知道,变量是不能赋值给常量的。

⑨:练习题:判断一个数是否为奇数;输出1-100以内的所有奇数。

⑩:switch语句:(也是一种分支语句,多用于多分支情况)如:

2021.08.12自学C(打卡第7天)_自学C打卡第7天_04

这里得明白switch(表达式),表达式相当于一个门,而case后面的表达式是钥匙,只要从上往下遍历到一样的(钥匙),那就开始执行语句(此处代码为打印),而且不会停了!那啥时候会停?答案是遇到break语句,而且加上break后终止的是整个switch语句。上图钥匙是1,所以从打印周一直至周五(因为没碰到break)。加了break是什么效果呢:

2021.08.12自学C(打卡第7天)_自学C打卡第7天_05

十一:switch(表达式1);及case(表达式2);这里的表达式1须为整型表达式,表达式2位整型常量表达式,否则编译会出错。如:float day=0.0;switch(day)就不行。

case(1.0)也是不行的。

十二:如果想表达周一至周三为工作日,周四周五为休息日:

2021.08.12自学C(打卡第7天)_自学C打卡第7天_06

注意养成一个习惯:别看switch语句的最后一行执行完自动出去switch语句,但是还是得在最后一个case语句后面加一个break为妙!

十三:switch语句允许嵌套,且要注意好嵌套时的break后跳到哪里了!?如:

2021.08.12自学C(打卡第7天)_自学C打卡第7天_07

应当注意的是:break只会跳出当前代码块!