★流程控制★
顺序结构:默认的流程结构。按照书写顺序执行每一条语句。选择结构:对给定的条件进行判断,再根据判断结果来决定执行哪一段代码。
循环结构:在给定条件成立的情况下,反复执行某一段代码。
一、选择结构-if
1、if的第1种结构if(条件)
{
语句1;
语句2;
......
}
2、if的第2种结构
if(条件1)
{
语句1;
语句2;
......
}
else
{
}
3、if的第3种结构
if(条件1)
{
语句1;
语句2;
......
}
else if(条件2)
{
}
else if(条件3)
{
}
else if(条件4)
{
}
else
{
}
4、if的第4种结构
if (条件)
语句1;
使用注意:
1>比较大小时,常量值放左边,变量放右边
//if (a = 0)
if (0 == a)
{
printf("a等于0\n");
}
else
{
printf("a不等于0\n");
}
2>注意赋值运算符,不要写成两个=
a = 15;
3>if语句后面不要写;
if ( 5>6 );
{
<span style="white-space:pre"> </span>printf("A\n");
}
4>作用域不明确
if (10 > 6)
int a = 5;
如果要在if后面的语句中定义新的变量,必须用大括号{}
二、选择结构-switch
1、简单使用
switch(表达式) { case 数值1: break; … default: break;}举例
int a = 10;
switch (a) {
case 0:
printf("这是一个0");
break;
case 5:
printf("这是一个5");
break;
case 10:
printf("这是一个10");
break;
default:
printf("什么也不是");
break;
}
*注意:break:退出整个switch语句2、if和switch的对比
如果case后面没有break,就会执行后面所有case中的语句,直到遇到break为止
如果要在case后面定义新的变量,必须用大括号{}包住(和if一样)
1> if语句能完成的功能,switch并不一定能完成2> 在有些情况下,if语句和switch语句可以互换
3> switch能完成的功能,if语句都能完成
三、循环结构-while
1、简单使用
连续printf(“俯卧撑”)20次;
while(表达式) { }
continue:输出5次休息一下
break的使用:某次的时候停止循环
int main()
{
// 1.先确定需要重复执行的操作
// 2.再确定约束条件
// 定义一个变量记录做的次数
int count = 0;
while (count < 50)
{
++count;
printf("做第%d次俯卧撑\n", count);
if (count == 20){
break;
}
}
return 0;
}
2、特点
只有条件成立才会执行循环体
while (条件)
{
循环体
}
3、运行原理
1>如果一开始条件就不成立,永远不会执行循环体4、最简单的死循环
2>如果条件成立,就会执行一次循环体,执行完毕,再次判断条件是否成立......
break:
直接结束整个while循环
continue:
结束当前的循环体,进入下一次循环体的执行
while(1);
四、循环结构-do while
1、特点:一定会执行一次循环体
while和do while循环对比
while (条件)
{
}
do {
} while(条件);
2、while和do-while的区别
1>很多情况下,while和do while可以互换3、最好使用while
2>while特点:如果一开始的条件不成立,永远不会执行循环体
3>do while特点:不管一开始的条件是否成立,至少会执行一次循环体
五、循环结构-for
1、格式:
for (语句1; 条件; 语句2)
{
<span style="white-space:pre"> </span>循环体
}
注:
语句1:初始化语句2、for循环嵌套实例
语句2:增量语句(执行完循环体后再执行的语句)
1>for一开始就会执行一次语句1(整个for循环只会执行一次)
2>判断条件是否成立,如果条件成立,就会执行一次循环体,然后就会执行语句2,再次判断条件是否成立
输出九九乘法表
#include <stdio.h>
int main()
{
for (int i = 1; i<=9; i++) {
for (int j = 1; j<=i; j++){
printf("%d*%d = %d”,i,j,i*j);
}
printf("\n");
}
return 0;
}
3、陷阱
死循环 for(;;);4、while循环和for循环的比较
for循环体内部变量的作用域
作用域混淆
for (int i = 0; i<5; i++) int a = 10;
可以互换5、易错注意:
for循环的变量可以及时回收
1>不要随便在for()后面写分号
2>如果要在循环体中定义新的变量,必须用大括号{}包住
3>for (int i = 0; i<10; i++, a++) // 这里的变量比{}中变量范围广
{
// a只能用在循环体{}中
int a = 10;
}
4>最简单的利用for循环实现死循环for(;;);
六、break和continue
break:
1、使用场合
1> switch语句:退出整个switch语句2、注意点:
2> 循环结构:退出整个循环语句
* while
* do while
* for
只对最近的循环结构有效continue:
1、使用场合
循环结构:结束当前这次的循环体,进入下一次循环体2、注意点:
* while
* do while
* for
只对最近的循环结构有效3、选择
1> 一般优先使用for循环
2> 然后再考虑while
3> 最后再考虑do while