正文

[027] 1到100之和~while^do-while区别2006-02-23 13:41:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/wentao/10418.html

分享到:

练练循环结构: 1到100之和

<1> for 语句


#include <stdio.h>
int main()
{
    int i, sum;
    sum = 0;
    for (i = 1; i < 101; i++)
        sum += i;
    printf("sum=%d\n", sum);
    return 0;   
}

<2> goto 语句


#include <stdio.h>
int main()
{
    int i = 1, sum = 0;
    table: sum += i;       /*有点像汇编^_^ */
          i++;
          if(i < 101)
              goto table;
          printf("sum=%d\n", sum);
          return 0;
}

goto 语句使程序的转移控制变得非常灵活,但是也造成了导致破坏程序良好结构的可能性,使用时要谨慎。另外,goto语句的使用机会已大大减少,只是需要从多层循环的内层循环跳到外层循环外时才用到goto语句。但是这种用法不符合结构化原则,一般不宜采用,只有在不得已时(例如能大大提高效率)才使用。

<3> while 语句


#include <stdio.h>
int main()
{
    int i, sum;
    i = 1;
    sum = 0;
    while (i < 101)
    {
        sum += i;
        i++;
    }
    printf("sum=%d\n", sum);
    return 0;   
}

<4> do-while 语句


#include <stdio.h>
int main()
{
    int i, sum;
    i = 1;
    sum = 0;
    do
    {
        sum += i;
        i++;
        } while(i <101); /*注意此处的分号不可省,while和do-while区别之一*/
    printf("sum=%d\n", sum);
    return 0;   
}

在一般情况下,用while语句和用do-while语句处理同一问题时,若二者的循环体部分是一样的,它们的结果也一样。如上<3>和<4>的循环体是相同的,得到结果也相同。但是如果while后面的表达式一开始就为假(0值)时,两种循环的结果是不同的。while是"当型"结构,只有条件成立才执行循环体,而do-while是"直到"型结构,先执行一次循环体后再做判断。
    另外while结构用{}引起的块不用分号结束,而do-while结构后必须有分号做为语句的结束标志。

 

阅读(5266) | 评论(1)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

loading...
您需要登录后才能评论,请 登录 或者 注册