黑马程序员技术交流社区
标题: C语言流程控制 [打印本页]
作者: 流转少年 时间: 2015-3-31 14:07
标题: C语言流程控制
C语言流程控制
一、 流程结构分类
i. 顺序结构:按照代码从上到小的顺序执行代码
ii. 选择结构:对给定条件进行判断,决定执行哪段代码
iii. 循环结构:在给定条件成立的情况下,反复执行某段代码
二、 选择结构:
a) if
i. if第一种结构
if(条件)
{
语句;
}
如果条件成立(为真)执行大括号里所有代码
如果条件不成立(为假)不执行if语句
ii. if第二种结构
if(条件1)
{
语句;
}
else
{
}
如果条件1成立(为真)执行if后面大括号里所有代码
如果条件1不成立(为假)执行else后面大括号里的所有代码
iii. if第二种结构
if(条件1){
语句1;
}
else if (条件2){
语句2;
} ……
else{
}
从上向下顺序验证,哪个条件成立,执行哪个条件后面的代码块,如果所有条件都不成立,执行else后面的代码块
1.同时只会有一个代码块会被执行,不能出现两个条件同时成立的情况(会报错)
2.当顺序验证条件时,条件成立后,下面的条件将不会再继续验证。
iv. if第四种结构
if(条件1)
语句1;
语句2;
条件成立执行if后的第一条语句,即语句1,其它语句即语句2,与if无关。
v. if使用注意
1. 赋值符号“=”和等于号“==”不要混淆
2. if语句后面不要加“;”分号,否则会导致死循环
3. 定义变量时,注意作用域的大小区分,若再if后面定义新的变量,要用大括号括住,否则会导致变量作用域不明确而报错。
4. 在if的条件里,若比较相等,把常量写左边,变量写右边,这样可以防止“=”和“==”混淆后编译器不报错,常量在左边如果混淆则会报错。
b) switch
i. 基本结构
switch(数值)
{
case 数值1:
{
语句1;
break;
}
case 数值2:
{
语句2;
break;
}
……
default:
{
语句3;
break;
}
}
1. 顺序依次判断switch后的数值等于大括号里case后的哪个数值,等于哪个数值就执行哪个case后的语句。
2. break退出整个switch函数
3. 如果一个条件成立的case后面没有break,就会一直向下运行,执行所有case(无论条件是否成立)后面的语句,直到遇到break为止。
4. 如果要在case后定义新的变量,要用{}括住,否则会导致变量作用域不明确。
ii. 使用注意
1. switch();括号里面的内容可以使字符“+”“-”“*”“/”,英文字母等
c) switch和if对比
1. 判断的时取值范围,不能转化为数值时,或者数值量大时,用if语句。
2. if语句能完成的功能,switch语句不一定能完成,
3. switch语句能完成的功能,if语句一定能完成相应的功能。
三、 循环结构
a) while
i. 基本结构
while(条件)
{
语句;
}
如果条件成立,执行语句,再次判断条件是否成立,再执行语句,直到条件不成立,跳出循环。
ii. 怎么用
1. 先确定需要重复执行的操作
2. 再确定约束条件(即重复的次数)
3. 定义一个技术变量(记录重复执行的次数)
iii. continue 跳出本次循环进入下一循环
break 跳出循环结构体
iv. continue
1. 在特定条件下,跳出本次循环进入下次循环,条件自己设定
v. break
1. 在特定条件下,结束循环结构。
vi. 运行原理
1. 如果一开始条件不成立,永远不会执行循环体
2. 如果条件成立,就会执行一次循环体,执行完毕,再次判断条件是否成立,循环执行,直到条件不成立。
vii. while使用注意
1. 死循环程序,用ctrl + C退出
2. while语句后面不要跟分号,否则会引发死循环
3. 最简单的死循环:while(1);
b) do-while循环
i. 结构:
do
{
语句;
}while(条件);
无论条件是否成立,先执行一次循环语句,再判断条件是否成立
ii. while和do-while的区别
1. 很多情况下:while和do-while可以互换
2. 特点
a) while特点:如果一开始条件不成立,不执行循环体
b) do-while特点:无论一开始条件是否成立,都会先执行一次循环体。
c) for循环
i. 结构:for(语句1;条件;语句2)
1. 语句1:叫做初始化语句,也可以写在for循环前面,语句2:叫做增量语句,是执行完循环体后再执行的语句
2. for一开始就会执行一次语句1,整个for循环只会执行一次
3. 判断条件是否成立,如果条件成立就会执行一次循环体,然后执行增量语句,再次判断是否成立,直到条件不成立,退出for循环
4. 用for循环可以做while循环做得所有功能
5. 逗号表达式:在两个语句之间用逗号链接,可以组成一个顺序运行的大语句
ii. for循环语句使用注意
1. 在for循环后不要加分号,因为for循环后面不直接跟大括号时,默认把最近的一个语句作为循环体,分号相当于一条空语句
2. 在for循环体内定义新的变量,一定要定义在大括号内,否则会导致变量作用域不明确
3. 循环结构for(;;)小括号里面的变量作用域,比循环体大括号内的变量作用域大
4. 最简单的for西循环for(;;);
iii. for循环嵌套使用
1. for循环嵌套for循环
a) 如果输出的图形为几行几列,则第一个for循环控制行数,第二个for循环控制列数
四、 流程控制总结
a) if 选择结构:
i. 在同一时间内,只有一个语句会被执行,如果所有条件都不成立,则执行else后的语句
b) switch选择结构:
i. 默认情况下,只有一个case后面的代码会被执行
ii. 如果一个case的条件成立且这个case后面没有break,就会按顺序执行后面case中的语句,直到遇到break未知
iii. 如果要在case后面定义一个新的变量,一定要用大括号括住
iv. 在switch语句中不能缺少break和default语句
-
-
04-C语言流程控制.pdf
77.88 KB, 下载次数: 90
作者: 流转少年 时间: 2015-3-31 14:09
c) 循环结构
i. while
1. 性能中等
2. 如果一开始条件不成立,永远不会执行循环体
ii. do-while
1. 性能差
2. 无论条件是否成立,都会先执行一次循环体
iii. for
1. 性能优等
2. 能及时回收变量的内存空间
d) continue和break使用注意
i. break适用场合
1. switch语句:退出整个switch语句
2. 循环结构:while,do-while,for:退出整个循环语句
3. 只对最近的循环体或语句起作用
ii. continue使用场合
1. 循环结构:结束当前循环进入下一次循环体
2. 只对最近的循环体起作用
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |