1. //  用while语句实现循环  
  2. while 语句的一般形式如下:  
  3. while (表达式) 语句  
  4. 其中"语句"就是循环体。  
  5. 只要当循环条件表达式为真(即给定的条件成立,)就执行循环体语句。  
  6. while 循环的特点:先判断条件表达式,后执行循环体语句。  
  7. #include "stdafx.h"  
  8.  
  9.  
  10. int _tmain(int argc, _TCHAR* argv[])  
  11. {  
  12.     int i=1,sum=0;  
  13.     while(i<=100)  
  14.     {  
  15.         sum=sum+i;  
  16.         i++;  
  17.     }  
  18.     printf("sum=%d\n",sum);  
  19.     return 0;  
  20. }  
  21.  
  22. //  用do...while语句实现循环  
  23. do...while 语句的执行过程是:先执行循环体,然后再检查条件是否成立,若成立再执行循环体。  
  24. do...while 语句的特点是:先无条件地执行循环体,然后判断循环条件是否成立。  
  25. do...while 语句的一般形式为  
  26. do 
  27.     语句  
  28. while (表达式);  
  29. 其中的"语句"就是循环体。  
  30. #include "stdafx.h"  
  31.  
  32.  
  33. int _tmain(int argc, _TCHAR* argv[])  
  34. {  
  35.     int i=1,sum=0;  
  36.     do 
  37.     {  
  38.         sum=sum+i;  
  39.         i++;  
  40.     }while(i<=100);  
  41.     printf("sum=%d\n",sum);  
  42.     return 0;  
  43. }  
  44.  
  45. //  用for语句实现循环  
  46. for(i=1;i<=100;i++)         //控制循环次数,i由1变到100,共循环100次  
  47. {printf("%d",i);}           //执行循环体,输出i的当前值  
  48.  
  49. for的语句一般形式为  
  50. for (表达式1;表达式2;表达式3)语句  
  51. 3 个表达式的主要作用是:  
  52. 表达式1:设置初始条件,只执行一次。可以为零个、一个或多个变量设置初值。  
  53. 表达式2:是循环条件表达式,用来判定是否继续循环。  
  54. 在每次执行循环体前先执行此表达式,决定是否继续执行循环。  
  55. 表达式3:作为循环的调整。  
  56. for (循环变量赋初值;循环条件;循环变量增值)  
  57.     语句  
  58.  
  59. 1.while 循环的形式:  
  60.  
  61. 表达式1;  
  62. while 表达式2  
  63. {  
  64.     语句  
  65.         表达式3  
  66. }  
  67.  
  68. 二者无条件等价。  
  69.  
  70. 2."表达式1"可以省略,即不设置初值,但"表达式1"后的分号不能省略。  
  71. for(;i<=100;i++) sum=sum+i;     //for语句中没有"表达式1"  
  72.  
  73. 为了能正常执行循环,应在 for 语句之前给循环变量赋以初值。即  
  74. i=1;                            //对循环变量i赋初值  
  75. for(;i<=100;i++) sum=sum+i;     //for语句中没有"表达式1"  
  76.  
  77. 3."表达式2"也可以省略,即不用"表达式2"来作为循环条件表达式,不设置和检查循环的条件。如  
  78. for(i=1;;i++) sum=sum+i;  
  79. 此时循环无终止地进行下去,也就是认为表达式2始终为真。它相当于  
  80. i=1;  
  81. while(1)  
  82. {  
  83.     sum=sum+i;  
  84.     i++;  
  85. }  
  86.  
  87. 4.表达式3也可以省略,但此时程序设计者应另外设法保证循环能正常结束。例如:  
  88. for(i=1;i<=100;)            //没有表达式3  
  89. {  
  90.     sum=sum+i;  
  91.     i++;                    //这时可以在循环体重使循环变量增加  
  92. }  
  93.  
  94. 5.  
  95.  
  96. 6.for(;;) printf("%d\n",i);  
  97. 相当于  
  98.   while(1)printf("%d\n",i);  
  99.  
  100. 7.for(sum=0;i<=100;i++) sum=sum+i;  
  101.  
  102. 8.for(sum=0,i=1;i<=100;i++) sum=sum+i;  
  103. 或  
  104.   for(i=0,j=100;i<=j;i++,j--) k=i+j;  
  105.  
  106. 9.表达式2 一般是关系表达式(如i<=100)或逻辑表达式(如a<b&&x<y),但也可以是数值表达式或字符表达式。  
  107. 只要其值为非0,就执行循环体。  
  108. a.for(i=0;(c=getchar())!='\n';i+=c);  
  109. b.for(;(c=getchar())!='\n';)  
  110.     printf("%c",c);  
  111.  
  112. 10.C99允许在for语句的"表达式1"中定义变量并赋初值,如:  
  113. for(int i=1;i<=100;i++)         //定义循环变量i,同时赋初值1  
  114. sum=sum+i;  
  115.  
  116. //  循环的嵌套  
  117. 一个循环体内包含另一个完整的循环结构,称为循环的嵌套。  
  118. 内嵌的循环中还可以嵌套循环,这就是多层循环。  
  119.  
  120. 3种循环(while 循环、do...while 循环和 for 循环)可以相互嵌套。  
  121.  
  122. //  几种循环的比较  
  123. 1. 3 种循环都可以同时处理同一问题,一般情况下它们可以互相代替。  
  124. 2. 在 while 循环和do...while 循环中,只在 while 后面的括号内指定循环条件。应在循环体  
  125. 中包含循环趋于结束的语句。  
  126.    for 循环可以在表达式 3 种包含使循环趋于结束的操作,甚至可以将循环体中的操作全部放在  
  127. 表达式 3 中  
  128. 3. 用 while 和do...while循环时,循环变量初始化的操作应在 while 和 do...while 语句  
  129. 之前完成。  
  130.    for 语句可以在表达式1中实现循环变量的初始化。  
  131. 4. while 循环、 do...while 循环和 for 循环,都可以用 break 语句跳出循环,用 continue 语句  
  132. 结束本次循环。