读薄《C和指针》-第4章 语句

这是我读《C和指针》第4章做的笔记,复习一下C语言中各种各样的语句,希望能对你有所帮助

C并不具备任何输入/输出语句;I/O是通过调用库函数实现的。c也不具备任何异常处理语句,它们也是通过调用库函数来完成的。

当循环内部执行break语句时,循环就会退出。当循环内部执行continue语句时,循环体的剩余部分便被跳过,立即开始下一次循环。在while和do循环中,下一次循环开始的位置是表达式测试部分。但在for循环中,下一次循环开始的位置是调整部分。

空语句

C最简单的语句就是空语句,它本身只包含一个分号。空语句本身并不执行任何任务,但有时还是有用。它所适用的场合就是语法要求出现一条完整的语句,但并不需要它执行任何任务。

if语句

括号是i语句的一部分,而不是表达式的一部分,因此它是必须出现的,即使是那些极为简单的表达式也是如此。

在C的if语句和其他语言的if语句中,只存在一个差别。C并不具备布尔类型,而是用整型来代替。

else子句从属于最靠近它的不完整的if语句。如果你想让它从属于第一个if语句,你可以把第2个if语句补充完整,加上一条空的else子句,或者用一个花括号把它包围在一个代码块之内。

break和continue语句

在while循环中使用break语句用于永久终止循环。在执行完break语句之后,执行流下一条执行的语句就是循环正常结束后应该执行的那条语句。

在while循环中使用continue语句用于永久终止当前的那次循环。在执行完continue语句之后,执行流接下来就是重新测试表达式的值,决定是否继续执行循环。

这两条语句如果出现于嵌套的循环内部,它只对最内层的循环起作用,你无法使用break或continue语句影响外层循环的执行。

while语句

偶尔,while语句在表达式中就可以完成整个语句的任务,于是循环体就无事可做。在这种情况下,循环体就用空语句来表示。单独用一行来表示一条空语句是比较好的做法,如下面的循环所示,它丢弃当前输入行的剩余字符。
在这里插入图片描述

for语句

在这里插入图片描述其中的statement称为循环体。

expression1为初始化部分,它只在循环开始时执行一次。

expression2称为条件部分,它在循环体每次执行前都要执行一次,都像while语句中的表达式一样。

expression3称为调整部分,它在循环体每次执行完毕,在条件部分即将执行之前执行。所有三个表达式都是可选的,都可以省略。如果省略条件部分,表示测试的值始终为真。

for循环中使用break直接退出循环,continue语句把控制流直接转移到调整部分。

switch语句

执行流将贯穿各个case标签,而不是停留在单个case标签,这也是为什么case标签只是确定语句列表的进入点而不是划分它们的原因。如果你觉得这个行为看上去不是那么正确,有一种方法可以纠正——就是break语句。

在每个switch语句中都放上一条default子句是个好习惯,因为这样做可以检测到任何非法值。否则,程序将若无其事地继续运行,并不提示任何错误出现。这个规则唯一合理的例外是表达式的值在先前已经进行过有效性检查,并且你只对表达式可能出现的部分值感兴趣。

goto语句

goto语句是一种危险的语句,会让程序可读性变差。但是,在一种情况下,即使是结构良好的程序,使用goto语句也可能非常合适–就是跳出多层嵌套的循环。由于break语句只影响包围它的最内层循环,要想立即从深层嵌套的循环中退出只有使用一个办法,就是使用goto语句。

在这里插入图片描述

参考:C和指针(第二版) 〔美〕Kenneth A.Reek著 徐波译 人民邮电出版社

猜你喜欢

转载自blog.csdn.net/weixin_43580841/article/details/106190737