先看以下switch语句的程序:

    scanf("%d",&score);
    if (score>=0 && score<=100) {
    
        switch (score/10) {
            case 10:
            case 9:
                grade = 'A';
                break;
            case 8:
                grade = 'B';
                break;
            case 7:
                grade = 'C';
                break;
            case 6:
                grade = 'D';
                break;
        
            default:
                grade ='N';
                break;
        }
        printf("该成绩转换为等级制为%c!!!\n",grade);
    
    }else
        printf("输入不合法!!!!\n");
 

在程序中可见每个case分支后面都有一个break语句,这是因为在switch语句中每个case都是互斥的,每一个case都是独立的一种情况,所以不管最后程序走到哪个分支并执行,都要从这儿跳出去到switch之外,而break就起到了跳出程序的作用。

其实break不止是可以用在switch语句中,也可以用在for循环和while循环中,用来跳出循环。

还有一个和break比较相近的控制符,就是continue,它是用来控制程序跳出本次循环,直接进入下一个循环的,以下分别以两个程序做解读:

int i = ;
for (; i<; i++) { if (i%==) {
continue;
}else{
printf("%d\t",i);
} }

运行以上程序,打印结果为:

                    Program ended with exit code: 

而运行一下程序,会有什么输出呢?

   int i = ;
for (; i<; i++) { if (i%==) {
break;
}else{
printf("%d\t",i);
} }

程序的输出为:

Program ended with exit code: 

也就是说在使用break 的时候程序没有输出任何东西,这是因为循环第一次是i=0,此时0的余数就是0,符合break的条件,程序直接从此处跳出循环外,并未执行下一次循环,而上面使用continue的时候,程序在continue处停止执行本次循环,直接进行第i+1次循环,也就是说continue跳过本次循环,进行下次循环,而break直接跳出循环体。

以下摘自csdn,供加深理解:

reak和continue的区别如下: 
1. break可用于switch语句,表示跳出整个switch块,而continue则不能用于switch语句 
2. 它们都可用于循环语句的循环体,所谓的区别也应该是它们对循环次数的影响不同。break用于立即退出当前循环,而continue仅跳过当次循环(本次循环体内不执行continue语句后的其它语句,但下次循环还会执行)。举例说明。 
int i; 
int s = 0; 
for (int i = 1; i <= 10; i++) 

if (i == 6) break; 
s += i; 

上面的循环会因为break语句而在i=6时提前终止,这样s的最终值就是1+2+3+4+5 
如将break换成continue 
int i; 
int s = 0; 
for (int i = 1; i <= 10; i++) 

if (i == 6) continue; 
s += i; 

当i=6时就不会将i累加到s中,s的最终值是1+2+3+4+5+7+8+9+10,唯独少一个6

C语言-break和continue的更多相关文章

  1. C语言break和continue

    break和continue C语言中有有两种结束循环的关键字:break和continue #include <stdio.h> #include <stdlib.h> in ...

  2. C语言-循环结构及break、continue

    循环结构 --1-- 结构循环 1.1 while循环 1.2 do…while循环 1.3 for循环 --2-- break和continue 2.1 break关键字 2.2 continue关 ...

  3. matlab和C语言的break及continue测试

    break和continue语句 有两个附加语句可以控制while和for循环:break和continue语句.break语句可以中止循环的执行和跳到end后面的第一句执行,而continue只中止 ...

  4. 汇编:模拟C语言实现break与continue

    ;=============================== ;循环程序设计 ;模拟C语言实现break 与continue DATAS SEGMENT i dw sum dw DATAS end ...

  5. C 语言循环之break、continue

    在C 编程的过程中,我们很多时候都会用到循环,但有时需要中途跳出整个循环,或跳过某一次循环,这时就需要用到break或continue,关于二者的使用很多书籍和博文都有很相近的说明,此处不做任何讲解, ...

  6. C语言之break和continue

    一 break 和 continue 的介绍 break: 1).跳出当前所在的switch语句(tips:可查看前面 switch 部分)   2).跳出当前所在的循环 continue: 结束本次 ...

  7. go语言基础之break和continue的区别

    1.break和continue的区别 在循环里面有两个关键操作break和continue,break操作是跳出当前循环,continue是跳过本次循环. 2.break 备注:break可⽤于fo ...

  8. 2014年辛星完全解读Javascript第五节 break和continue与错误处理

    先说一下break和continue的主要用法吧,break用于跳出循环,continue用于跳过该循环中的一个迭代.简单的说,就是break直接从该语句跳出,但是continue不会跳出该循环语句, ...

  9. break和continue语句

    跳转语句中断当前的执行过程,C++语言提供了4中跳转语句:break.continue.goto和return. break语句 break语句负责终止离他最近的while.do while.for或 ...

  10. 浅谈break 、continue、return,goto四种语句的区别。

    浅谈break .continue.return三种语句的区别: break,continue,return这三个具有跳转功能的语句在c语言中经常被用到,近期身边有些小伙伴总是把它们的用法搞乱,在这里 ...

随机推荐

  1. Linux中防火墙centos

    一般的防火墙用下面这些简单的配置都能达到目的 1) 重启后生效 开启: chkconfig iptables on 关闭: chkconfig iptables off 2) 即时生效,重启后失效 开 ...

  2. SVN分支的创建,合并,与销毁和相关操作

    test是分支和主干所在的文件夹,SVNTest是主干,所有的分支都放在branch里面,192.168.1.101是服务器的地址 创建分支: 把服务器中的主干复制出来到自己的分支上: svn cop ...

  3. JSP文件上传--FileUpload组件

    如果使用上传操作,并且没有使用框架之类,最好使用Smartupload,因为FileUpdate太难使用. 下载组件: fileupload包:http://commons.apache.org/pr ...

  4. jvm attach

    http://ayufox.iteye.com/blog/655761 管道通信

  5. 关于127.0.0.1与localhost

    127.0.0.1是不会经过防火墙的,而localhost是要通过防火墙取地址的.

  6. n个List<Map>合并,Map中某属性值相等的value值相加

    List<Map> maps1 =[{"bigtypes":100,"num":400},{"bigtypes":200,&qu ...

  7. 小P的强力值

    小P的强力值 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 小Hi在虚拟世界中有一只小宠物小P.小P有K种属性,每种属性的初始值为Ai.小Ho送给了小Hi若干颗药丸,每 ...

  8. PHP学习笔记--1,不总结,不掌握,不明白!

    不总结,不掌握,不明白! 前言: 学php一开始就是语法,变量,数组,函数,OOP(面向对象[封装,继承,多态,抽象]) 这些都是最基础的东西,但你还要懂一些在实际开发中要用的东西,比如基本的HTML ...

  9. rsync+inotify实现数据的实时备份

    一.rsync概述 1.1.rsync的优点与不足 rsync与传统的cp.tar备份方式相比,rsync具有安全性高.备份迅速.支持增量备份等优点,通过rsync可以解决对实时性要求不高的数据备份需 ...

  10. Varnish Cache

    1 Varnish简介 Varnish是高性能且开源的反向代理服务器和HTTP加速器(cache server).其开发者Poul-Henning Kamp是FreeBSD核心的开发人员之一.Varn ...