int i=1,sum=0; for( ;i<=100;i++) { }
for语句还可以写成其他多种形式,不过建议最好还是使用规范的语句形式。由于经常用表达式1进行循环变量的赋初值,用表达式2控制循环结束,用表达式3控制循环变量的递增或递减,所以规范的for语句形式为:
for(循环控制变量赋初值; 循环条件;循环控制变量增/减值) { }
【例5-7】把100~200之间的不能被3整除的数输出。 【程序代码】 #include
for(n=100;n<=200;n++) {
循环体语句 sum=sum+I;
}
}
if(n%3!=0)
printf(\
小测验:
(1)例5-7中输出的数据比较多,如果要求每行只输出10个数,程序应该如何修改?
(2)在所有的两位数中,个位数比十位数大的两位数有多少个?是哪些数?编写程序完成。
【例5-8】判断正整数m是不是素数,m由键盘输入。 【程序代码】 #include
int m,i,flag=0; scanf(\for(i=2;i<=m-1;i++) {
if(m%i==0) {
flag=1;
}
}
}
break;
if(flag==0)
printf(\是素数!\\n\
else
printf(\不是素数! \\n\
本例中用到了break语句。在switch语句中我们已经接触过break语句,它的功能是跳出switch语句,那么在循环结构中使用break语句,其作用是跳出循环语句。
需要注意的是:一般只有在switch结构和循环结构中使用break语句,其作用是跳出该结构。 小测验:
素数判断中能否不使用break语句?
【例5-9】程序预期输出半径为1~10的圆的面积,但是如果有面积值超过100时,则停止执行。 【程序代码】
#include
area=PI*r*r;
if(area>100) break;
printf(\半径为%d的圆面积为:%f\\n\
5.3 循环嵌套
一个循环体内又包含了另一个完整的循环结构,这种循环称为循环的嵌套。使用循环嵌套时,三种循环语句可以自身嵌套,也可以互相嵌套。
例如:分析下面程序段,理解循环嵌套。 (1)for(k=1;k<=5;i++)
printf(\
输出结果为:***** (2)for(i=1;i<=3;i++)
for(k=1;k<=5;k++)
printf(\
输出结果为:***************
显然,上面程序是for循环中又包含了一个for循环,属于两层循环结构。外层循环用变量i控制,内循环用变量k控制,外循环i从1~3循环3次,外循环每执行一次,内循环k从1~5循环5次,所以输出结果为3*5=15个“*”。 (3)for(i=1;i<=3;i++)
{ for(k=1;k<=5;k++)
printf(\
printf(\ } 输出结果为: ***** ***** *****