break
有时候在循环结束前就已经达到某个目标,不用继续循环执行代码了,这个时候就可以用break来提前结束循环
例一
for(int i=0;i<3;i++)
{
if(3>2)
{
break;//终止for循环
}
语句A;//此语句永远不会执行
}
例二
全系有1000个学生,征集慈善募捐,当总数达到10万元时就结束,统计此时捐款的人数,以及平均每人捐款的数目。
#include <stdio.h>
int main(void)
{
int NumOfStudent = 1;
float money = 0;
float total = 0;
for(; NumOfStudent <= 1000; NumOfStudent++)
{
printf("目前捐款总金额为:%.2f\n",total);
printf("你是第%d个捐款的学生,请输入要捐款的金额:\n",NumOfStudent);
scanf("%f",&money);
total = total + money;
if(total >= 100000)
{
puts("捐款总数已达到10万元。");
printf("捐款总金额为:%.2f\n",total);
printf("总共有%d个学生捐款,人均捐款数目为:%f",NumOfStudent,total/NumOfStudent);
break;
}
}
return 0;
}
break的补充:
-
在多层循环中,break只能终止最里面包裹它的那个循环
for(...;...;...) { for(...;...;...) { ... break;//这里的break只能终止里面的for循环 } }
-
在多层switch嵌套中,break只能终止距离它最近的switch
int a,b; switch(a) { case 1: switch(b) { case 1: ... break;//这里的break只能终止里面的switch case 2: ... } case 2: ... case 3: ... }
continue
continue可以用来跳过本次循环余下的语句,转去判断是否需要执行下次循环。
例一:
for(表达式1;表达式2;表达式3)
{
语句A;
语句B;
continue;//continue执行后,语句C、D会被跳过,转到执行表达式3,然后开始下一次循环
语句C;
语句D;
}
例二:
while(表达式)
{
语句A;
语句B;
continue;//continue执行后,语句C、D会被跳过,转到执行while后面的表达式,然后开始下一次循环
语句C;
语句D;
}
例三:输出100~200之间,不能被3整除的数
#include <stdio.h>
int main(void)
{
int number;
puts("100~200之间不能被3整除的数有:");
for(number=100;number<=200;number++)
{
if(number%3==0)
{
continue;//如果此句运行了,则下面的printf语句在本次循环中就不运行了
}
printf("%d ",number);
}
return 0;
}
%
是取余,10%3意思就是取10/3的余数,即10%3的值等于1