第三十八课 用break和continue改变流程 【项目1-2】

本文详细介绍了如何使用C语言中的break和continue语句优化代码流程,通过实例展示了大奖赛计分3.0版本及打豆豆程序的改进。文章强调了在特定条件下使用这两个关键字的重要性,以及它们如何在复杂程序中简化逻辑和提高效率。
摘要由CSDN通过智能技术生成

第三十八课  用break和continue改变流程 【项目1-2】







(为什么做题的时候不紧不慢的,写博客的时候却这么积极 睡觉。。)

项目一【大奖赛计分3.0】

在歌手大奖赛中,有10个评委为参赛的选手打分,分数为1~10分。请在大奖赛计分程序基础上,增加功能,若用户输入不在0-10范围内,则立即要求重输,直到正确。

代码:
#include<stdio.h>
int main()
{
    int j,i=1,num1,num2=10;
    double sum=0,t,a,b;
    char c;
    printf("输入选手人数:");
    scanf("%d",&num1);
    do
    {
        a=-1;
        b=11;
        sum=0;
        j=1;
        printf("\n第%d位选手开始评分\n",i);
        do
        {
            printf("第%d位评委打分:",j);
            scanf("%lf",&t);
            if(t>10||t<0)
            {
                printf("输入错误!请重新输入\n");
                continue;
            }
            sum=sum+t;
            if(t<=b)
                b=t;
            if(t>=a)
                a=t;
            j++;
        }
        while(j<=num2);
        sum=sum-a-b;
        sum=sum/(num2-2);
        printf("\n去掉最高分:%.2f, 去掉最低分:%.2f\n",a,b);
        printf("第%d位选手最后得分:%.2f\n",i,sum);
        i++;
        printf("*** N键退出,其他键继续 ***");
        fflush(stdin);
        c=getchar();

    }
    while(i<=num1&&c!='n'&&c!='N');
    printf("\n%d位选手已评分完毕!\n",i-1);
    return 0;
}

运行结果:


大奖赛计分最终版完成!




————————————————————————————————————————————————————————————————————


项目二【打豆豆】

设计一个程序,能重复地在显示下面的信息:
*  1. 吃饭
*  2. 睡觉
*  3. 打豆豆
*  0. 退出
*  请选择(0-3):
根据用户输入的选项,输出一句提示性的话语(将来会对应实现某个功能)。输入0,则退出。
请在下面的程序段基础上完成 

  1. #include <stdio.h>  
  2. int main( )  
  3. {  
  4.     char cChioce;  
  5.     do  
  6. {  
  7.    //显示“菜单”  
  8.          
  9.        //输入菜单选项  
  10.           
  11.        //根据选项作出处理  
  12.           
  13.     }  
  14.     while(1);   //这儿貌似死循环,要求在循环体内,有合适的break,使循环即出  
  15.     return 0;  
  16. }  

代码:

#include<stdio.h>
int main ()
{
    int c;
    do
    {
        printf("  请选择每日任务(数字1-3):\n");
        printf("1:签到!");
        printf("2:我饿了! ");
        printf("3:我困了! ");
        printf("4:还没有打豆豆! ");
        printf("0:完成任务退出系统\n");
        scanf("%d",&c);
        if(c==1)
            printf("签到成功!\n");
        else if(c==2)
            printf("饥饿度-----0%%!\n");
        else if(c==3)
            printf("精神值-----100%%!\n");
        else if(c==4)
            printf("豆豆已被你打败!\n");
        else if(c==0)
            break;
        else
        {
            printf("\007选择错误!重试!");
        }
        printf("\n");
    }
    while(1);
    printf("任务完成,明天再来!\n");
    return 0;
}

运行结果:






知识点心得:


    break 和 continue 两个语句用法特别,会比原来的程序增加更多的进入点和退出点,有时候会不如以前简洁,产生BUG,但需要的时候还是应该用上的。

    break 语句 switch 里,只会跳出 switch 语句,在它之外的循环或者条件语句不受影响。






















80

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值