流程控制
顺序结构:默认的流程结构。按照书写顺序执行每一条语句。
选择结构:对给定的条件进行判断,再根据判断结果来决定执行哪一段代码。
循环结构:在给定条件成立的情况下,反复执行某一段代码。
一、选择结构-if
if (表达式) 语句1;
if(count>50) 开班; 上课;
if(表达式) 语句1; else 语句2;
if(count>50) 开班; else 不开班;
if(表达式) { }
if(count>50) {开班; 布置课室;} else {}
if -else if-else
if(a==0) else if (a>0) else
特点:只有一个括号会被执行
注意:
· if(a!=0) { a不是0;} else {a是0;}
if (a); { } //if后面加“;”后,那么后面的{}就是代码块,与if语句无关。
· if (10) int a = 9;
二、选择结构-switch
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语句。默认情况下,只有一个case后的代码被执行,如果case后面没有break,就会执行满足条件的那行语句后所有case中的语句,直到遇到break为止。 若在case中定义变量,则必须用{}括起来。
if和switch的对比
1> 很多情况可以互换,switch能完成的功能,if都能完成。
2> if用得比较多,比较灵活,switch只能某个单值,所以能用if就用if(if能完成的功能,switch并不一定能完成)。
三、循环结构-while
1. 结构
while(条件)
{
循环体;
}
2. 运行原理
1> 如果条件一开始就不成立,永远不会执行循环体;
2> 如果条件成立,就会执行一次循环体,执行完毕,再次判断条件是否成立……
3. 注意
while(条件); 即在后面加上“;”,也是可以的,只是每次运行一次while语句,执行一次空语句,然后再次进入while循环,容易产生死循环。while(1);是最简单的死循环。
循环结构-do while
1、 结构:
do{
}while(条件);
2、 特点:无论条件是否成立,一定会执行一次循环体。
3、 while和do while循环对比int i=0; while(i<0){ i++; }
int i=0; do{ i++;} while(i<0);
- do while循环不论条件是否成立,一定会执行一次循环体,而wile循环只要条件不成立,就不会执行循环体。 很多情况下两者可以相互转换。
循环结构-for
1. 常用结构
for(语句1;条件;语句2)
{
循环体;
}
2. 运行过程
语句1为初始化语句;语句2是增量语句(执行完循环体之后再次执行的语句)。在运行过程中,for一开始就会执行一次语句1(整个for循环只会执行一次语句1),然后判断条件是否成立,如果条件成立,就会执行一次循环体,然后再执行语句2,再次判断条件是否成立,然后再次执行语句2……。
初始化语句等可以是多句(把printf放到for的括号中)
3. for循环嵌套
好友列表1
好友1
好友2
好友列表2
好友1
好友2
好友列表3
好友1
好友2#include<stdio.h> int main() { int i,j; for(i=1;i<=3;i++) { Print(“好友列表%d”,i); for(j=1;j<=2;j++) { printf(“ 好友%d”,j); } } return0; }
4. 注意事项
1> 死循环 for(;;);
2> for循环体内部变量的作用域
3> 作用域混淆
for (int i = 0; i<5; i++) int a =10;
5. while循环和for循环的比较
1> 可以互换
2> for循环的变量可以及时回收
break和continue
1.break语句
break语句可以用来从循环体内跳出循环体,即提前结束循环,接着执行循环下面的语句
一般形式:
break;
注意:break语句不能用于循环语句和switch语句之外的任何其他语句中。
比如:unsigned char i, j=50; for(i=0;i<100;i++) { if(i>j)break; } j=i;
当程序循环到i=51时,执行break语句,跳出for循环,开始执行j=i这条语句。
2.continue语句
作用为结束本次循环,即跳过循环体中下面尚未执行的语句,接着进行下一次是否执行循环的判定。
一般形式:
continue;
比如:unsigned char i, j=50; for(i=0;i<100;i++) { if(i>j)continue; j=i; }
当程序循环到i=51时,执行continue语句,结束本次循环,即不执行下面的j=i语句,而是执行i++,即i=52,故i<100,循环的条件成立,循环继续执行,直到i<100的条件不成立,for循环才终止。
continue与break的区别:
continue语句跳出本次循环,进入下一次循环体判断,只结束本次循环,而不是终止整个循环的执行。
break语句则是结束整个循环过程,不再判断执行循环的条件是否成立。
1.continue只结束上一级本次循环,针对只是for while两大类循环语句。
2.break结束上一级整个循环语句,可以是for while,还可以为swtich.
测试代码:#include<stdio.h> #include<string.h> int main() { char i; for(i=0;i<5;i++){ switch(i){ case0:printf("i=%d\n",i);break; case1:printf("i=%d\n",i);break; case2:printf("i=%d\n",i);break; case3:printf("i=%d\n",i);continue;printf("ok\n"); case4:printf("i=%d\n",i);break; default:printf("erro\n"); } printf("abanda\n"); } }
输出:
i=0
abanda
i=1
abanda
i=2
abanda
i=3
i=4
abanda
C基础----控制流程
最新推荐文章于 2022-11-30 19:08:04 发布