控制流
来源:互联网 发布:广联达算量软件怎么用 编辑:程序博客网 时间:2024/05/21 09:43
1、概念:
是一些具有特定执行逻辑的复合语句(语句块/代码段),用于控制程序的执行流程。
2、循环控制流
1》while语句
while (表达式) { //判断表达式是否为真,真:进入while语句块中执行,执行完之后再次判断表达式,假:执行while语句块后面的语句
语句1;
语句2;
....
do { //不管表达式是否为真,先进入do-while语句块执行,执行一次后再判断表达式是否为真,真:回到do-while语句块的第一条语句执行,假:跳出do-while语句块句。
语句1;
语句2;
....
} while (表达式);
//先执行表达式1,然后判断表达式2是否为真,真:进入for语句块中执行,执行完语句块之后,执行表达式3,再判断表达式2,假:执行for语句块后面的语句。
for(表达式1;表达式2;表达式3){
语句1;
语句2;
....
}
1》if语句
if(表达式){ //判断表达式是否为真,真:进入if语句块中执行,假:执行if语句块后面的语句。
语句1;
语句2;
....
}
if(表达式1){ //判断表达式是否为真,真:进入if语句块中执行,假:执行if语句块后面的语句。
语句1;
语句2;
....
}else if(表达式2){
语句1;
语句2;
....
}else if(表达式3){
语句1;
语句2;
....
}
.....
else if(表达式n){
语句1;
语句2;
....
}else{
语句1;
语句2;
....
}
上面的例子中,if-else语句一定会被执行,其中只能执行一个代码段
case下面的语句执行,直到switch的最后一条语句,如果i的值,不等于case后的常量,则执行default下面的语句
2》用于switch语句中,表示跳出该switch语句
无条件跳转,例如:
是一些具有特定执行逻辑的复合语句(语句块/代码段),用于控制程序的执行流程。
2、循环控制流
1》while语句
while (表达式) { //判断表达式是否为真,真:进入while语句块中执行,执行完之后再次判断表达式,假:执行while语句块后面的语句
语句1;
语句2;
....
}
#include <stdio.h>int main(void){int a,b,i;printf("请输入i:");scanf("%d",&i);while(i){printf("请输入a和b:");scanf("%d%d",&a,&b);printf("%d + %d = %d\n",a,b,a+b);printf("请输入i:");scanf("%d",&i);}return 0;}2》do-while语句
do { //不管表达式是否为真,先进入do-while语句块执行,执行一次后再判断表达式是否为真,真:回到do-while语句块的第一条语句执行,假:跳出do-while语句块句。
语句1;
语句2;
....
} while (表达式);
#include <stdio.h>int main(void){int a,b,i;do{printf("请输入a和b:");scanf("%d%d",&a,&b);printf("%d + %d = %d\n",a,b,a+b);printf("请输入i:");scanf("%d",&i);}while(i);return 0;}3》for语句
//先执行表达式1,然后判断表达式2是否为真,真:进入for语句块中执行,执行完语句块之后,执行表达式3,再判断表达式2,假:执行for语句块后面的语句。
for(表达式1;表达式2;表达式3){
语句1;
语句2;
....
}
for (i = 0;i < 5;i++) {printf("请输入a和b:");scanf("%d%d",&a,&b);printf("%d + %d = %d\n",a,b,a+b);//printf("请输入i:");//scanf("%d",&i);}3、分支控制流
1》if语句
if(表达式){ //判断表达式是否为真,真:进入if语句块中执行,假:执行if语句块后面的语句。
语句1;
语句2;
....
}
<pre name="code" class="cpp">#include <stdio.h>int main(void){int i;while (1) {scanf("%d",&i); //i为1,打印:今天心情不错,i为0,打印:今天心情很糟糕if (i == 1) {printf("今天心情不错!\n");}if (i == 0) {printf("今天心情很糟糕!\n");}if (i == 2) {return 1;}}return 0;}2》if-else语句
if(表达式1){ //判断表达式是否为真,真:进入if语句块中执行,假:执行if语句块后面的语句。
语句1;
语句2;
....
}else if(表达式2){
语句1;
语句2;
....
}else if(表达式3){
语句1;
语句2;
....
}
.....
else if(表达式n){
语句1;
语句2;
....
}else{
语句1;
语句2;
....
}
<pre name="code" class="cpp"> if (i == 1 ){<span style="white-space:pre"></span>printf("今天心情不错!\n");} else if (i == 0) {<span style="white-space:pre"></span>printf("今天心情很糟糕!\n");} else {return 1;}
上面的例子中,if-else语句一定会被执行,其中只能执行一个代码段
3》switch-case语句<span style="white-space:pre"></span>switch(整型变量){<span style="white-space:pre"></span>case 整型常量:<span style="white-space:pre"></span>语句块A;<span style="white-space:pre"></span>case 整型常量:<span style="white-space:pre"></span>语句块A;<span style="white-space:pre"></span>。。。<span style="white-space:pre"></span>case 整型常量:<span style="white-space:pre"></span>语句块A;<span style="white-space:pre"></span>default:<span style="white-space:pre"></span>语句块A;<span style="white-space:pre"></span>}
<pre name="code" class="cpp">#include <stdio.h>int main(void){int i;while (1) {scanf("%d",&i); switch (i) {case 1:printf("今天是星期一!\n");case 2:printf("今天是星期二!\n");case 3:printf("今天是星期三!\n");case 4:printf("今天是星期四!\n");case 5:printf("今天是星期五!\n");case 6:printf("今天是星期六!\n");case 7:printf("今天是星期天!\n");default:return 1;}}return 0;}上面的例子中:执行到switch语句时,先取出i的值,然后和case后面的常量比较,如果等于某个case后的常量,
case下面的语句执行,直到switch的最后一条语句,如果i的值,不等于case后的常量,则执行default下面的语句
五、跳转语句:<span style="white-space:pre"></span>1、continue语句<span style="white-space:pre"></span>只能用在循环控制流中,表示跳出一次循环体执行,回到循环语句的表达式位置
<pre name="code" class="cpp">#include <stdio.h>int main(void){int i;for(i = 0; i < 100; i++){if( i % 2 == 0)continue;printf("i = %d\n",i);}return 0;}
2》用于switch语句中,表示跳出该switch语句
<pre name="code" class="cpp">#include <stdio.h>int main(void){int i;while (1) {scanf("%d",&i); switch (i) {case 1:printf("今天是星期一!\n");break;case 2:printf("今天是星期二!\n");break;case 3:printf("今天是星期三!\n");break;case 4:printf("今天是星期四!\n");break;case 5:printf("今天是星期五!\n");break;case 6:printf("今天是星期六!\n");break;case 7:printf("今天是星期天!\n");break;default:return 1;}}
return 0;}3、goto语句:
无条件跳转,例如:
#include <stdio.h>int main(void){int i;tab:scanf("%d",&i);printf("i = %d\n",i);goto tab;return 0;}一般用于跳出多层循环,在项目开发中经常用于出错处理(如:内核驱动出错跳转)
#include <stdio.h>int main(void){int i = 0;while (1) {for (; i < 100; i++) {if ( i % 2 == 0)//break; //可以跳出离它最近的for循环,不能跳出while循环//此处出错goto tab; printf("i = %d\n",i);}i++;}tab:printf("处理程序中的错误!\n");return 0;}
0 0
- TCP窗口控制、流控制、拥塞控制
- 控制流
- 流控制
- 控制流
- 控制流
- 控制流
- 控制流
- 控制流
- # 控制流
- 控制流
- 控制流
- 控制流
- 控制流
- Shell控制结构--流控制
- 软件流控制 和 硬件流控制
- 控制流迷惑——控制流整平
- iOS高级--流控制---标准控制符
- 多媒体传输流控制
- ios 键盘 之 完成操作
- (学习笔记)Java的3DES与DES加密实现
- 3unity项目优化(内存)
- div的高度用百分比 如何占满浏览器
- unity 运行时类调用方法顺序
- 控制流
- Python——批量文件转移
- 转:linux中fork()函数详解(原创!!实例讲解)
- POJ 1182食物链(经典的并查集)
- 立项管理
- 工作流程的便利性
- 学生信息管理系统之单链表实现
- 【Leetcode】201. Bitwise AND of Numbers Range
- 《Java编程思想第四版》笔记---18章(3) I/O 流式部分--字符流字节流