基础内容|循环结构
1.for循环
1.1 表达式结构
1 | for(表达式1;表达式2;表达式3) |
表达式1:设置初始条件,只执行一次。可以为零个,一个,多个变量设置初值;
表达式2:是循环条件表达式,用来判断是否继续循环。在每次执行循环 (for后由一对花括号括起来的)体前先执行此表达式,决定是否继续执行循环;
表达式3:在执行完循环体后才进行此语句; 所以可以理解为:
1 | for(循环变量赋初值;循环条件;循环变量增值) |
需要注意的是:
表达式1可以省略,但后面的分号不能省略;
表达式2可以省略(但后面的分号不能省略),不设置和检查循环的条件,此循环可以终止的进行下去,也就认为表达式2始终为真值;
表达式3可以省略,但是应该在保证该程序能正常结束;
for循环与while循环无条件等价;
1.1.1 例子
1 |
|
1.1.2 解读例子
for循环的执行顺序如下: 步骤1. 执行i=1,把i初始化为1 步骤2. 判断i<=100是否满足,满足则执行sum += i;(把i的值和sum相加然后赋值给sum),否则退出循环 步骤3. 执行i++,然后i变成2,然后继续执行步骤2,直到退出循环位置
1.2 for循环的嵌套
表达式基本结构:
1 | for(;;) |
总循环次数:外循环次数内循环次数; ******
2.while循环
基本框架:
1 | 表达式1; |
while后面的语句称为循环体;
循环体执行的次数由循环条件表达式(表达式2)来确定;
当循环条件表达式为真值时就执行循环体;
while(1)//是一个死循环
2.2 运算符
运算符 | 含义 |
---|---|
&& | 且 |
! | 非 |
|| | 或 |
> | 大于 |
< | 小于 |
>= | 大于等于 |
<= | 小于等于 |
== | 等于 |
2.3 例子
1 | int i=0,sum=0; |
一定要给i赋初值;
如果没有i++那么这个while循环就是个死循环;
只要循环条件表达式为真,就执行循环体;
3. do while循环
基本框架
1 | 表达式1; |
- 先执行一次指定的循环体语句,再判别表达式是否为真,若为真返回重新执行循环体语句。
- 注意while后的()后是有的
3.1 例子
1 | int i=0,sum=0; |
与while循环的区别:
while循环先判断再执行;
do...while循环先执行再判断;
只要第一次进入循环的条件就不满足,那么这两种循环的结果可能不同;
3.2 while与do while的例子
3.2.1 while
1 |
|
3.2.2 do while
1 |
|
4.switch语句
关于C语言中我们做判断的时候一般是会想到if else,常见的if else的写法为:
1 | if(表达书) |
当出现更多的if else嵌套的时候通常会使我们的代码变的较为繁琐,使得我们在观看自己的代码的时候容易逻辑混淆,所以就有了switch的用法,switch的用法在代码中的运用广度没有if else 较强,
4.1 基本结构
1 | switch(变量或者表达式) |
一旦遇到 break,就不再执行 switch 中的任何语句,包括当前分支中的语句和其他分支中的语句;也就是说,整个 switch 执行结束了,接着会执行整个 switch 后面的代码。
4.2 例子
1 |
|
5.break与continue
5.1 break
作用:可以使流程跳到循环之外(结束整个循环过程),接着执行循环体下面的语句。
但是:break语句只能用于循环语句和switch语句,不能单独使用 在多层循环中,一个break语句只向外跳一层 在 C语言 的 switch(开关语句)中,break 语句还可用来在执行完一个 case(分支)后立即跳出当前 switch 结构
5.1.1例子
1 | for(;;){// A |
1 | int i; |
5.2continue
作用:并不是终止整个循环,只是提前结束本次循环,继续执行下次循环; continue 语句的作用是跳过本次循环中余下尚未执行的语句,立即进行下一次的循环条件判定,可以理解为仅结束本次循环。
在 while 和 do-while 循环中,continue 语句使得流程直接跳到循环控制条件的测试部分,然后决定循环是否继续进行。在 for 循环中,遇到 continue 后,跳过循环体中余下的语句,而去对 for 语句中的“表达式3”求值,然后进行“表达式2”的条件进行条件测试,最后根据“表达式2”的值来决定 for 循环是否执行。
在循环体内,不论 continue 是作为何种语句中的语句成分,都将按上述功能执行,这点与 break 有所不同。
5.2.1例子
1 | int i = 0; |
这段代码输出为:1 2 3 4 6 7 8 9 10
所以continue的总结:continue是用于终止本次循环的,也就是本次循环中continue后边的代码都不会再执行,而是直接跳转到while语句的判断部分,进行下一次循环的入口判断。