回首页 回首页 ◎ 设为首页  
◎ 收藏本站  
◎ 给我留言  
  
  首 页  C/C++教程  C++之父的FAQ  C/C++动向  C/C++源代码  C/C++误区  Unix/Linux  下载中心  乱七八糟  蚂蚁的Blog  
  当前位置:首 页 >> C/C++教程 >> C 语言基础教程 >> 36. while 循环
最 近 更 新
54. goto 语句
53. switch 语句推荐
52. continue 和 break
51. 条件运算符(?:)
50. if 语句嵌套推荐
49. 逻辑运算符推荐
48. 在循环中使用 if 语句推荐
47. if 和 else 连用推荐
46. if 语句
45. 循环应用实例 2
最 新 推 荐
53. switch 语句推荐
50. if 语句嵌套推荐
49. 逻辑运算符推荐
48. 在循环中使用 if 语句推荐
47. if 和 else 连用推荐
44. 循环应用实例 1推荐
43. 循环嵌套推荐
40. for 循环推荐
37. 关系运算符推荐
36. while 循环推荐
热 门 排 行
2. 第一个 C 程序推荐
31. 预处理指令 #define..推荐
1. C 语言简介
11. 基本数据类型:整型..推荐
24. 运算符的优先级和结..推荐
5. 如何编写函数
30. 字符串字面量推荐
13. 标识符命名规则
36. while 循环推荐
7. 第三个 C 程序推荐
站 内 搜 索

Web stdcpp.cn
关键词

搜索方式

搜索范围

精确匹配
广 告

36. while 循环


来源:蚂蚁的 C/C++ 标准编程 作者:antigloss 等级:精品
发布于2006-06-22 12:30 被读4846次 【字体:

    所谓循环(looping),就是重复执行一系列语句。C 提供了三种循环结构,分别为 while, for
do while


一、while 循环

    while 循环的使用方法为:

        while ( condition )
            一条语句

如果 condition 为(true),则循环执行“一条语句”;如果 condition 为(false),则不执行“一条语句”,并退出循环。C 语言中,0 为假,非零为真。也就是说,如果 condition 的值为 0,则 condition 为假;否则,condition 为真。

    while 循环也可以这么用:

        while ( condition )
        {
            一系列语句
        }

如果 condition 为真(true),则循环执行大括号中的一系列语句;反之,不执行大括号中的一系列语句,并退出循环。

    这两种用法的区别是,前者只能循环执行一条语句,而后者却能循环执行大括号中的一系列语句。例如:

        int main(void)
        {
            int i = 0, j = 0, k = 0;

            while ( i < 3 )  /* 当 i 小于 3 为真             */
                ++i;         /* 循环执行 ++i;                */
            ++j;             /* 这个 while 循环不作用于 ++j; */
            /* 以上语句执行完后,i 的值为 3,j 的值为 1      */

            while ( k < i )  /* 当 k 小于 i 为真        */
            {
                ++j;         /* 循环执行 ++j; 和 ++k;   */
                ++k;        
            } /* 这个 while 循环作用于 ++j; 和 ++k;     */
            /* 以上语句执行完后,j 的值为 4,k 的值为 3 */

            return 0;
        }

<小于运算符,也就是说,i < 3 检测 i 是否小于 3。如果 i 小于 3,则 i < 3 为真,否则为假。当 i < 3 为真时,循环执行 ++i; ;当 i 自增到 3 时,i < 3 为假,循环中止,转而执行 ++j; 。当 k < i 为真时,循环执行 ++j; 和 ++k; ;当 k 自增到 3 时,k < i 为假(因为 i 的值为 3),循环中止,转而执行 return 0; 。下图简单描述了 while 循环的结构:


二、复合语句(块)

    复合语句(compound statement)由大括号及大括号内的一系列语句组成。如:

        {
            ++j;
            ++k;
        }

这就是一个复合语句。复合语句也称之为(block)。前面所说的 while 循环的第二种用法,用的就是复合语句。所以,while 循环的用法可以总结为:

        while ( condition )
            一条语句/复合语句

其中,condition 可以是任何表达式。如果 condition 为真,则执行一次“一条语句/复合语句”,然后再次检测 condition 的真假性,根据 condition 的真假性决定是否继续执行“一条语句/复合语句”。当 condition 为假时,则不执行“一条语句/复合语句”,并退出循环,转而执行后续的语句。

注意,如果 condition 一开始就为,则“一条语句/复合语句”一次也不会被执行。如:

    int i = 5;
    while ( i < 4 )
        i++;

由于 i 一开始就大于 4,所以 i < 4 一开始就为假,i++; 一次也不会被执行。此外,

    while ( ++i < 10 )
        ;

是正确的,因为 ; 是一条完全合法的语句。

参考资料:C Primer 5th Edition
          The C Programming Language 2nd Edition
          C99 标准

本文版权归 蚂蚁的 C/C++ 标准编程 以及 作者 antigloss 共同所有,转载请注明原作者和出处。谢谢。



相关专题:C 循环语句
45. 循环应用实例 2
44. 循环应用实例 1

上一篇:35. 类型转换
下一篇:37. 关系运算符

共有评论 22 条 网友评分 1分 查看全部评论

游客:ren
评分:0
我看不懂啊,
游客:antigloss
评分:0
请问哪里不懂呢?
游客:eudc301
评分:0
我看得懂,但做题目时又不会了
游客:antigloss
评分:0
多练习就会了:)
游客:wolf
评分:4
很不错 我懂了
游客:chak
评分:5
++i和i++有什么区别啊!如何计算j 的值为 4,k 的值为 3
游客:antigloss
评分:0
++i 和 i++ 的区别请参考这里:
http://stdcpp.cn/html/1/2/0603/132.htm


while ( k < i )  /* 当 k 小于 i 为真        */
{
    ++j;         /* 循环执行 ++j; 和 ++k;   */
    ++k;         
} /* 这个 while 循环作用于 ++j; 和 ++k;     */

在进入上述循环之前,i 的值为 3,j 的值为 1。当 k 增加到 3 时,k < i 不成立,循环结束。此时 j 的值也增加了 3,故而 j 的值为 4。
游客:idonno
评分:0
可是问题是你已经把i,j,k的值设定为0了,你怎么可以获得i=3 或4 呢??

查看全部评论

【发表评论】 评分:1分 2分 3分 4分 5分


验证码:

Powered By Www.Xydw.COM Ver1.14 管理
Copyright © 2005-2006 蚂蚁的 C/C++ 标准编程 All Right Reserved. XCMS
粤ICP备06014124号   站长:Antigloss