C语言:break和continue语句改变循环

来源:互联网 发布:java web 中文乱码 编辑:程序博客网 时间:2024/06/05 23:53

任务代码:

#include <stdio.h>int main(){    int sum=0,i=1;    while(1)    {        sum=sum+i;        if(i>=100)            break;        i++;    }    printf("1到100的加和为:%d",sum);    return 0;}
#include <stdio.h>int main(){    int sum=0,i,j=0;    for(i=1;i<=100;i++)    {        if(i%2==0)//忽略所有的偶数           continue;           j++;        printf("%d ",i);        if(j%5==0) //每输出5个换一行            putchar('\n');    }    return 0;}

大奖赛积分:

#include <stdio.h>int main(){    printf("大奖赛积分!\n");    int iJudger=1,iJudger_Number;    float fMark,fSum=0,fMax=-1,fMin=11,fAver;    char choice;    printf("评委人数:\n");    scanf("%d",&iJudger_Number);  do{      printf("请输入选手的成绩(0分-10分)\n");      do      {        printf("请输入第%d位评委的评分:",iJudger);        scanf("%f",&fMark);        if(fMark<0||fMark>10)            continue; //输入不对就继续输,由于不会执行到后面的iJudger++,提示的还是原评委,而且这个只限于do while语句,for语句因为条件中一定有++所以无法        fSum=fSum+fMark;        if(fMark>fMax)        {            fMax=fMark;        }        if(fMark<fMin)        {            fMin=fMark;        }        iJudger++;      }while(iJudger<=iJudger_Number);        fAver=(fSum-fMax-fMin)/(iJudger_Number-2);//计算平均分        printf("减去一个最高分: %.3f\n", fMax);        printf("减去一个最低分: %.3f\n", fMin);        printf("当前选手的最后得分是:%.3f\n", fAver);        printf("******************* SUCCESS ***********************\n");        printf("按 N 退出,其他键继续....");        fflush(stdin);   //将输入缓冲清空,否则getchar()会读入之前录入中的回车等符号        choice=getchar();   }while(choice!='N' && choice!='n'); //忽略大小写带来的问题    return 0;}



执行情况:





知识总结:

break往往放在一个循环里面,和一个if语句搭配:作用在循环里面跳出循环

while(表达式1)
{

 ... if(表达式2)

     break;

}


continue同样也是放在一个循环里曼并伴随if的存在;作用是在表达式2判断为真时,永远执行代码1的部分跳转开头而跳过代码2;

while(表达式1)

{

 代码1....

if(表达式2)contibue;

代码2....

}


for(E1;E2;E3)
{

 代码1....

if(E4)contibue;

代码2....

}


心得体会:


原创粉丝点击