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语句的控制表达式不能包含任何浮点类型的对象

原创粉丝点击