======================= C语言控制流 =======================================
《一》while do-while for if-else switch-case goto break continue return
1. while:循环
while:代码模块
while(判断表达式)
{
....//代码块1
}
....//代码块2
判断表达式:其实就是一些值比较的结果 如3>5 a<b ....
判断表达式为真,则执行代码1
判断表达式为假,则执行代码2
C语言非0即真 1(真) 2(真) 16546(真) -21(真) 0(假)
在程序当中偶尔会遇到这样写法 true 与false是bool类型的两个值,在stdbool.h中已经定义好
true 值为1 false 值为0
while(true)
while(false)
分析下面写法不同,结果会怎么样
while( int_i > int_j )
{
printf("小许C语言\n");
sleep(1);
}
while( int_i > int_j );
{
printf("小许C++语言\n");
sleep(1);
}
答:第一个代码打印小许C语言;第二个进入while循环,不会打印小许C++语言
2. do-while:循环
do-while:模型
do
{
....//代码块1
}while(判断表达);
....//代码块2
判断表达式为真,则执行代码1
判断表达式为假,则执行代码2
C语言非0即真 1(真) 2(真) 16546(真) -21(真) 0(假)
while与do-while循环区别是什么
do-while循环内代码至少执行一遍
3. for:循环
for模型:
for(赋值表达式; 判断表达式; 变量变化表达式)
{
...//代码块1
}
...//代码块2
三个表达式之间要以;隔开 ,for当中只有三个表达式,即三大块。
for代码先执行顺序
1、赋值表达式(只执行一次)
2、判断表达式,若成立(判断结果为真),则执行代码块1 ,否则执行代码块2
3、判断结果为真,才有第三步:变量变化表达式
4、判断表达式,若成立(判断结果为真),则执行代码块1 ,否则执行代码块2
5、判断结果为真,才有第五步:变量变化表达式
...
int i, j, k;
赋值表达式 判断表达式 变量变化表达式
for(i=4, j=2, k=1; i > k; i++, j++)
for(i=0 ; i < 9; i++) //i++ ==>i = i+1
{
printf("i = %d\n",i);
sleep(1);
}
for循环等同while以下代码
i = 0;
while(i<9)
{
printf("i = %d\n",i);
sleep(1);
i++;
}
for扩展
a. for(; ; )==>while(1)
b. for( ;i<5; i++) 使用,for循环之前的变量赋值
4. if-else:选择控制流
if-else模型:
if(判断表达式)
{
...//代码块1
}
else
{
...//代码块2
}
判断表达式为真,则执行代码1
判断表达式为假,则执行代码2
两个代码块当中只能执行其中一个
C语言非0即真 1(真) 2(真) 16546(真) -21(真) 0(假)
在项目开发当中常用模型
if(判断表达式)
{
代码块1
}
if(判断表达式2)
{
代码块2
}
if(判断表达式3)
{
代码块3
}
这种模型,只要满足条件都会执行相关语句
if(判断表达式)
{
代码块 4
}
else if(判断表达式2)
{
代码块5
}
else if(判断表达式3)
{
代码块6
}
else
...
这种模型,它是从上往下进行判断,当满足其中一个时,后面的则不考虑执行
《二》while do-while for if-else switch-case goto break continue return
switch-case:选择控制流(分支控制流)
switch-case:模型
switch(变量)
{
case 变量值:
代码块1;
break;
case 变量值:
代码块2;
break;
.
.
.
default:
代码块n;
break;
}
例子:
while(1)
{
printf("请输入字符A~G:");
scanf("%c",&ch);
while( getchar() != '\n');
switch(ch)
{
case 'A':
printf("星期一\n");
break;
case 'B':
printf("星期二\n");
break;
case 'C':
printf("星期三\n");
break;
case 'D':
printf("星期四\n");
break;
case 'E':
printf("星期五\n");
break;
case 'F':
printf("星期六\n");
break;
case 'G':
printf("星期日\n");
break;
default :
printf("无对应的日期\n");
break;
}
}
goto:跳转语句
goto模型
模型1:(少用)
标签:
。。。。//代码块
goto 标签;
标签定义方法与变量名定义方法一致
模型2:(可用,处理错误信息后退出程序)
。。。。//代码块
goto 标签;
。。。。//代码块
标签:
循环体:for while do-while里面的代码
注意!!!!:
break:一般用于循环体或者switch-case;用于循环体作用:跳出包含自己循环体,用于switch-case,跳出switch-case
continue:用于循环体内,作用:跳过continue后面代码块
return:在函数当中用于返回函数值,或者结束该函数。
10-09
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交