声明:本篇文章只是个人知识盲区、知识弱点、重点部分的归纳总结,望各位大佬不喜勿喷。梳理顺序是按照书籍的实际顺序梳理,转载请注明出处。
作者:sumjess
适用:这本书我已经看过4遍了,但是该书的知识点我并不是都常用,所以总会有忘记的,所以来写这本书的随手笔记,记录重点、易忘点。该博客可以当做字典,也可以当做你的笔记。
目前内容:第七章总结
第七章:C控制语句:分支和跳转
1、if语句:
(1)if语句被称为分支语句或者选择语句,因为它相当于一个交叉点,程序要在两条分支中选择一条执行;
(2)如果满足条件可执行的话,if语句只能测试和执行一次,而while语句可以测试和执行多次;
(3)注意,即使if语句由复合语句构成,整个if语句仍被视为一条语句。
2、if else语句:
(1)多重选择else if:
格式:if....
else if....
....
else if....
else....
(2)else 与 if 配对:
3、逻辑运算符:
(1)关系运算和逻辑运算:
① C语言6种关系运算符:>、<、==、>=、<=、!= ,前四个优先级大于后两个;
②算数优先级高于关系运算符高于赋值运算符;
③&&逻辑与,||逻辑或,!逻辑非;
④1(真)、0(假);
⑤与或逻辑表达式的值,八字口诀:一真或真,一假与假;
(2)条件表达式构成的选择结构:
表达式1 ? 表达式2 : 表达式3
若表达式1?成立,则输出表达式2,否则为表达式3.
注意:条件运算符优先于赋值运算符,但低于关系运算符和算术运算符。
4、循环辅助:continue和break
(1)continue语句:
用于跳过本次循环余下的语句,转去判断是否需要执行下次循环,continue终止此次循环,不会终止if。
如 for (1; 2;3)/while(表达式n)
a;
b;
continue;
c;
d;
如果执行continue语句,则跳过c、d语句,转去执行语句3、语句2/判断表达式n是否成立,因此将for语句转换成continue语句时,由于continue后跳过循环中余下的语句,所以自增自减等需要放在循环语句的continue之前,否则转换不等价
(2)break语句:
break如果用于循环适用于终止循环
break如果用于switch,则是用来终止switch
break不能直接用于if,除非if属于循环内部的一个子句 如 if (表达式) break 是错误的
# include <stdio.h>
int main (void)
{
int i;
for (i=0; i<3; ++i)
{
if (3 >2)
break; //break 虽然是if内部的语句,但break终止的是外部的for循环程序
printf("嘿嘿!\n") //永远不会输出,因为break终止循环
}
return 0;
}
#include <stdio.h>
int mian (void)
{
int i, j;
for (i=0; i<3; ++i)
{
for (j=0; j<4; ++j)
break; // break 只能终止离它最近的循环
printf("您好!\n") //输出三次
}
return 0;
}
上例为多层循环中使用break 语句,它只能终止离它最近的循环。同样,在多层switch嵌套中,break也只能终止离它最近的switch
(3)switch语句:
① break语句可用于循环和switch语句中,但是continue只能用于循环中。
② switch在圆括号中的测试表达式的值应该是一个整数值(包括char类型)。
③ case标签必须是整数类型(包括char类型)的常量或整型常量表达式(即,表达式中只包含整型常量)
(4)goto语句:
不建议使用(可读性是会降低的,看到goto还要去找相应的标签,肯定降低可读性。)