C选择结构、循环结构整理
1 | 1)if-else if-else |
控制流的一些注意点
1)小技巧:Xcode中选中要对齐的代码:control+i,就会自动对齐
2)while循环应用场景:
-循环体确定,循环次数也确定
-循环体确定,循环的次数不确定,但是循环继续或者结束的条件确定
-遍历指定范围的数
-找出指定范围中符合特定条件的数
-求累加和与平均值
-找一堆数中的最大数和最小数
-计数
-穷举【一个一个试】
3)定义在一个大括弧中的变量,只能在这个大括弧中访问,出了大括弧,CPU立即将变量回收,无法访问到了:
1 |
|
我们可以自定义一个作用域来提前释放一个变量:
1 | { |
4)无大括号else的匹配:else总是和最近的那个if匹配
5)if-else与switch-case的区别:前者从头开始遍历,后者直接跳转到符合要求处
每一个case块后面的break在语法上是可以不写的,break的意思代表立即结束整个switch-case结构,如果case块中没有break,那么就会直接穿透到下一个case中执行代码,直到遇到break才会结束switch结构,或者执行完
如果多个case块的处理逻辑是一样的,那么我们可以利用case穿透简写代码
switch后面的表达式任何类型都是可以的,除了实型
如果case块中要声明变量,那么这个case块就必须要使用大括弧
switch结构只能做等值判断,不能直接做范围判断,并且case后面的数据不能有变量
break的作用:
6)break和continue的区别:
如果在循环体中遇到了break,就会立即结束当前循环结构,但是还会继续外层循环
continue只能使用在循环体中,如果遇到了continue,会立即结束本次循环,然后回去判断循环条件【注意一下while循环体和for循环体不一样(前者可能包括i++,后者不包括)】
break和continue都只能作用于当前循环体!
一道比较有意思的面试题:
7)while和do-while的区别:前者先判断条件后进循环体,后者先进循环体再判断条件
8)for循环中,三个表达式都可以省略,但是分号不能省略;如果第二个表达式省略,那么循环条件默认就是成立的
for循环三个表达式其实可以是任意的C语句:
9)goto:可以将CPU的执行跳转到当前函数的别的地方继续执行
当执行到goto语句的时候,CPU就会跳转到指定的标签的地方继续往下执行
goto语句也可以实现循环操作
goto可以往前跳,也可以往后跳,但是只能在当前函数中跳
取标签名下面的那一句代码不能是声明变量:
10)break和goto: