C语言流程控制之for while do..while
程序员文章站
2024-03-23 20:32:16
...
流程控制:【C语言中的重点】
1.什么是流程控制:
程序代码执行的顺序
2.流程控制的分类:
顺序执行
选择执行
定义:某些代码可能执行,也可能不执行,有选择的执行某些代码
if
1.if的范围问题:
if(表达式)
语句A;
语句B;
解释:此时if只能控制语句A的执行与否,而不能控制语句B的执行与否
2.if(表达式)
{
语句A;
语句B;
}
解释:此时if控制既语句A也控制语句B。
3.一个封号; 一个空语句
4. if()
{
}
else
{
}
5. if (表达式1)
A;
else if (表达式2)
B;
else if (表达式3)
C;
else
D; //如果表达式1与表达式2都成立,其实只执行A,不会进入B去执行的。
6. if (表达式1)
A;
else if (表达式2)
B;
else if (表达式3)
C; //不会出错,但是语法上有漏洞
7. if (表达式1)
A;
else if (表达式2)
B;
else (表达式3)
C; //错误的,正确的写法是:要么else 后边加if 要么去掉(表达式3)
8. if (表达式1)
A;
else if (表达式2)
B;
else (表达式3);
C; //语法上没错,但是逻辑上是错的。
//else (表达式3);
C; 相当于 else
(表达式3); //无效的,无含义的
C;
switch:
循环:
定义:某些代码会被重复执行
分类:
for
int i, sum = 0 ;
for(i=1; i<=100; ++i)
{
sum += i;
}
printf("sum = %d\n", sum);
//先执行i=1,然后执行i<=100,如果成立那么执行sum += i ,
//再执行i++,i++执行完标志着一次循环结束. i=1只执行一次
强制类型转换:
格式:(数据类型)(表达式)
eg:(int)(4.5+2.3) 最终值:6
(float)(5) 最终值:5.000000
多个for循环嵌套使用:
for(1; 2; 3) //1
for(4; 5; 6) //2
A; //3
B; //4
整体是2个语句。1 2 3 是一个语句,4是一个语句
先执行1,再执行2,如果成立执行4,再执行5,如果成立,执行A,再执行6,
再执行5,如果5成立,再执行A;再执行6,再执行5,如果5不成立,就执行3,再执行2
如果成立,就执行4,后边依次,如果2不成立就执行B。
for(7; 8; 9)
{
for(1; 2; 3) //1
for(4; 5; 6) //2
A; //3
B; //4
}
//整体是一个语句
while
while(表达式)
语句;
什么时候用while 什么时候用for
for 和while 在逻辑上完全相同,是可以相互转化。但for的逻辑性更强,更不容易出错。
while for 那个时候用哪个,用多了自然就知道了
do ...while
while(表达式)
do
{
…
}while(表达式) //最少执行一次。主要用于人机交互
scanf(" %c",&ch); //如果要输入一个字符,%c前边必须加一个空格(空白符问题)
switch (表达式)
{
case 常量表达式1:
…
break;
case 常量表达式2:
…
break;
case 常量表达式3:
…
break;
default:
//case 1 ,case 2 ,case 3, default是程序的入口,一旦找到程序的入口,
//就开始从上往下依次执行了。break是用来终止switch的。
}
break 如果用于循环是用来终止循环
break 如果用于switch那么是用来终止switch,在多层switch嵌套中,break只能终止距离他最近的switch
break 不能直接用于if,除非if是属于循环内部的一个字句。
在多层循环中(嵌套循环中)break只能终止距离他最近的循环。