练练循环结构: 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结构后必须有分号做为语句的结束标志。
评论