①我们应当知道结构一般有:顺序结构、选择结构、循环结构三种,所谓顺序结构,就是代码自上而下运行,这是毋庸置疑的。其次就是选择和分支结构。下面逐一介绍。
②:分支语句: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?
编译结果:
也就是说啥都没打印,这是因为else总是与最近的if进行匹配,这叫悬空else的问题,那么这个else与上面的第二个if匹配后,导致第一个if是一个单语句,而没有else的,所以整个程序不会打印出啥的!除非用代码块隔开,如图:
⑧:一个小技巧:未来判断if()表达式时,内容为:判断一个常量和一个变量是否相等时,最好把常量放在前面,这样可以避免出现少写一个=的问题,因为只写一个=,是赋值语句,而我们知道,变量是不能赋值给常量的。
⑨:练习题:判断一个数是否为奇数;输出1-100以内的所有奇数。
⑩:switch语句:(也是一种分支语句,多用于多分支情况)如:
这里得明白switch(表达式),表达式相当于一个门,而case后面的表达式是钥匙,只要从上往下遍历到一样的(钥匙),那就开始执行语句(此处代码为打印),而且不会停了!那啥时候会停?答案是遇到break语句,而且加上break后终止的是整个switch语句。上图钥匙是1,所以从打印周一直至周五(因为没碰到break)。加了break是什么效果呢:
十一:switch(表达式1);及case(表达式2);这里的表达式1须为整型表达式,表达式2位整型常量表达式,否则编译会出错。如:float day=0.0;switch(day)就不行。
case(1.0)也是不行的。
十二:如果想表达周一至周三为工作日,周四周五为休息日:
注意养成一个习惯:别看switch语句的最后一行执行完自动出去switch语句,但是还是得在最后一个case语句后面加一个break为妙!
十三:switch语句允许嵌套,且要注意好嵌套时的break后跳到哪里了!?如:
应当注意的是:break只会跳出当前代码块!