C与指针的第四章介绍了(do)while、for、if、switch、go等语句,以及break和continue对语句的控制。经查漏,要补缺的点如下:
1.switch的每一条case都要加上break,否则switch的贯穿性会把每个case都执行到;
2.switch需要有default;
3.else与其距离最近的if进行匹配;
4.多重循环嵌套时,break只影响包围它的最内层循环,若想一次性跳出所有循环,一是用goto语句,如
goto quit;
quit:
blah;
blah;
二是为每一层循环都添加一个状态标志,例如:
status = true;
while(status && condition1)
while(sattus && condition2)
if(blah)
status = false;
break;
5.什么时候用while比for循环更合适?
当不需要初始化和调整语句时。
6.闰年可以被4整除,但不能被100整除,但能被400整除,先处理最特殊的情况:
if(year%400 == 0)
{leap_year = 1;}
eles if (year % 100 == 0)
{leap_year = 0;}
eles if (year % 4 == 0)
{leap_year = 1;}
else
{leap_year = 0;}
7.’\0’的ASCⅡ为0,用于表示字符串的结尾,所以在表示字符串结尾时,’\0’和0是一个意思。
书中给出的警告:
1.编写不会产生任何结果的表达式;例如
x*x+y*y;
上述表示式是和合法的,但没有改变程序状态,也没有赋值,没有意义
2.确保在if语句中的语句列表前后加上花括号;
3.在switch语句中,执行流意外从一个case顺延到下一个case;
书中给出的编程提示:
1.在一个没有循环体的循环中,用一个分号表示空语句,并让它独占一行;
2.for循环的可读性比while循环强,因为它把用于控制循环的表达式收集起来放在一个地方;
3.在每个switch语句中都使用default语句。