C语言之三种基本程序结构(笔记七)
来源:互联网 发布:模拟淘宝开店心得体会 编辑:程序博客网 时间:2024/05/16 12:20
if语句
if 语句可以省略else部分,变为如下格式:
if (表达式)
{
语句
}
if 语句含else部分
if (表达式)
{
语句
}
else
{
语句
}
switch语句
格式:switch(表达式)
{
case 常量表达式1:语句序列1
case 常量表达式2:语句序列2
case 常量表达式i:语句序列i
M
case 常量表达式n:语句序列n
default: 语句序列n+1
}
执行过程为:当表达式的值等于常量表达式i的值,则从语句序列i开始执行到语句序列n+1为止 。若表达式的值不等于任何一个常量表达式的值,则只执行default后面的语句。
一般在每个语句序列之后加一个break语句,这样在执行语句序列i之后,使流程跳出switch结构,实现多分支选择结构。
while语句是支持“当型”循环控制结构的语句。
一般格式为:
while (表达式)
{
语句;
}
do_while语句是支持“直到型”循环控制结构的语句。
一般格式为:
do
{
语句;
} while (表达式);
这分号不能丢!!
for语句是一种使用比while语句更加灵活的循环控制语句。
一般格式为:
for (表达式1; 表达式2; 表达式3)
{
语句
}
先求解表达式1;
再解表达式2,若为真(非0)值,则
执行语句,然后求解表达式3,再
转到求解表达式2。若为假(0)值,
则结束for语句的执行。
一个循环语句内又包含另一个完整的循环语句,称为循环语句的嵌套。内嵌的循环语句一般称为内循环,包含内循环的循环语句称为外循环。内循环再嵌套内层循环,就够成了多重循环。
break语句的功能是:
在switch语句中使流程跳出switch结构。
在循环语句中使流程跳出当前循环。
continue语句的功能是在循环语句中使本次循环结束,即跳过循环体中下面尚未执行的语句,接着进行下次是否执行循环的判断。
注意点
1、在多重循环中,如果有可能,应当将最长的循环放在最内层,最短的循环放在最外层,以减少CPU跨切循环层的次数。
示例:
长循环层在最内层,效率高
for (col = 0; col<5; col++)
{
for (row = 0; row<100; row++)
{
sum = sum + a[row][col];
}
}
长循环放在最外层,效率低
for (row = 0; row<100; row++)
{
for (col = 0; col<5; col++)
{
sum = sum + a[row][col];
}
}
2、建议for语句的循环控制变量的取值采用"半开半闭区间"写法。
半开半闭区间写法和闭区间写法虽然功能相同,但相比之下,半开半闭区间写法更加直观。二者对比如下:
半开半闭区间写法:
for (n = 0; n < 10; n++)
{
....
}
闭区间写法
for (n = 0; n <= 9; n++)
{
....
}
不能在for循环体内修改循环变量,防止循环失控
for (n = 0; n < 10; n++)
{
....
n = 8; // 不可,很可能违背了你的意愿
....
}
3、循环要尽可能短,要使代码清晰,一目了然。
如果所写的一个循环的代码超过以显示屏,那肯定会让读代码的人发狂的。解决办法有两个:
第一:重新设计这个循环,确认是否这些操作都必须放在这个循环里。
第二:将这些代码改写成一个子函数,循环中只调用这个子函数即可。
4、一般来说循环内的代码不要超过20行。
把循环嵌套控制在3层以内
国外有研究数据表明,当循环嵌套超过3层时,程序员对循环的理解能力会极大的降低。如果你的循环嵌套超过3层,那么就建议你重新设计循环或是将循环内的代码改写成一个子函数。
for语句的控制表达式不能包含任何浮点类型的对象
- C语言之三种基本程序结构(笔记七)
- C语言算法和三种基本程序结构
- C语言复习笔记三:三种程序结构记习题总结(1)
- C语言学习笔记(三)C的程序结构与编译执行过程
- 黑马程序员_C语言学习笔记之基本程序结构
- 4.C语言之程序结构
- 【黑马程序员】C语言学习笔记之基本运算(七)
- 【C语言】第三篇·基本程序结构
- C语言2(程序结构)
- C语言学习笔记5-程序结构
- C语言笔记3--函数和程序结构
- C语言笔记(七)
- C语言笔记之数据类型(三)
- C语言之常量(笔记三)
- C语言之函数和程序结构
- OC基本数据类型及三种程序结构
- Java(三)Java基本的程序结构
- JNI之C语言(三)-- 基本语法
- android统一添加activity切换动画
- C语言中大小写的转换
- RecyclerView如何禁止垂直滑动以及判断RecyclerView是否可以滑动
- 【python challenge】Level1
- 拓扑排序的原理及其实现
- C语言之三种基本程序结构(笔记七)
- [PAT乙级]1067. 试密码(20)
- 最小生成树之Kruskal算法
- 归并排序(merge sort)c++实现
- 图论五百题
- 字符串的逆序
- 最小生成树之Prim算法
- c++内存池的实现(可以new复杂对象)
- 最小生成树——Kruskal算法