break和continue的区别:

1. 当它们用在循环语句的循环体时,break用于立即退出本层循环,而continue仅仅结束本次循环(本次循环体内不执行continue语句后的其它语句,但下一次循环还会继续执行。
2. 如果有多层循环时,break只会跳出本层循环,不会跳出其他层的循环。
3. break可用于switch语句,表示跳出整个switch语句块,而continue则不能单独的用于switch语句。但是continue可以用于循环内部的switch语句。
4. break和continue语句在循环内的switch语句中使用时,是有区别的。在这种情况下的break是指跳出switch语句块(switch语句块的代码仍然执行)。而这种情况下的continue是指结束本次循环(不在执行switch后面的代码),进行下一次循环。

例1:

#include <stdio.h>
int main(void)
{
int i;
for (i=; i<; i++)
{
if (i == )
{
break;
printf("没有执行这里!\n");
}
printf("i=%d\n", i);
}
printf("已经跳出循环\n");
return ;
}

编译执行:

kevin@kevin-virtual-machine:~/Documents/Test/C/break_continue$ ./break 
i=
i=
已经跳出循环

因为break语句直接结束了本层的循环, 直接执行循环后边的语句。

例2:

#include <stdio.h>
int main(void)
{
int i;
for (i=; i<; i++)
{
if (i == )
{
continue;
printf("没有执行这里!\n");
}
printf("i=%d\n", i);
}
printf("循环结束!\n");
return ;
}

编译执行:

kevin@kevin-virtual-machine:~/Documents/Test/C/break_continue$ ./continue
i=
i=
i=
i=
循环结束!

continue 只是结束了当前一次循环,之后继续了下一次循环。

例3:

#include <stdio.h>
int main(void)
{
int a, b;
for (a=; a<; a++)
{
for (b=; b<; b++)
{
if(b == )
{
break;
printf("没有执行这里!\n");
}
printf("b=%d\n", b);
}
printf("a=%d\n", a);
}
printf("循环结束!\n");
return ;
}

编译输出:

kevin@kevin-virtual-machine:~/Documents/Test/C/break_continue$ ./break2
b=
b=
a=
b=
b=
a=
b=
b=
a=
b=
b=
a=
b=
b=
a=
循环结束!

例3是一个两层for循环,break语句只会跳出最近的一层循环,第二层for循环继续执行

例4:

#include <stdio.h>
int main(void)
{
int i;
for (i=; i<; i++)
{
int j = ;
switch(j)
{
case :
printf("你好 %d !!!\n", );
break;
case :
printf("你好 %d !!!\n", );
break;
case :
printf("你好 %d !!!\n", );
break;
}
printf("Hello World!\n");
}
printf("结束循环!\n");
}

编译输出:

kevin@kevin-virtual-machine:~/Documents/Test/C/break_continue$ ./switch_break
你好 !!!
Hello World!
你好 !!!
Hello World!
结束循环!

例4中break的作用只会跳出 switch() 语句块,执行swith语句块后面的程序printf("Hello World!\n");而不是跳出循环。

例5:

#include <stdio.h>
int main(void)
{
int i;
for (i=; i<; i++)
{
int j = ;
switch(j)
{
case :
printf("你好 %d !!!\n", );
continue;
case :
printf("你好 %d !!!\n", );
continue;
case :
printf("你好 %d !!!\n", );
continue;
}
printf("Hello World!\n");
}
printf("结束循环!\n");
}

编译输出:

kevin@kevin-virtual-machine:~/Documents/Test/C/break_continue$ ./switch_continue 
你好 !!!
你好 !!!
结束循环!

例5中循环内部的switch语句中的continue是直接结束本次循环,switch语句块后面的printf("Hello World!\n");将不会被执行。

break&&continue的更多相关文章

  1. js中的break ,continue, return (转)

    面向对象编程语法中我们会碰到break ,continue, return这三个常用的关键字,那么关于这三个关键字的使用具体的操作是什么呢?我们在使用这三关键字的时候需要注意和需要理解的规则是什么呢? ...

  2. break,continue的使用

    break,continue 使用break命令允许跳出所有循环下面的例子中,脚本进入死循环直至用户输入数字大于5.要跳出这个循环,返回到shell提示符下,就要使用break命令. #!/bin/b ...

  3. 详解C#break ,continue, return

    C#编程语法中break ,continue, return这三个常用的关键字的学习对于我们编程开发是十分有用的,那么本文就向你介绍break ,continue, return具体的语法规范. C# ...

  4. js中退出语句break,continue和return 比较 (转载)

    在 break,continue和return 三个关键字中, break,continue是一起的,return 是函数返回语句,但是返回的同时也将函数停止 首先:break和continue两个一 ...

  5. break , continue , exit

    break , continue , exit 例一:#!/bin/bash . /etc/init.d/functions `;do ];then #continue #没有数字3 break #e ...

  6. 有关于break,continue,return的区别和代码分析

    今天,用代码和结果直接解释break,continue,return的区别 1.break代码 public static void breakTest() { //break的讲解 for(int ...

  7. Java基础(2):Java中的四个跳转语句总结goto,break,continue,return

    跳转控制语句 Java中的goto是保留字,目前不能使用.虽然没有goto语句可以增强程序的安全性,但是也带来很多不便,比如说,我想在某个循环知道到某一步的时候就结束,现在就做不了这件事情.为了弥补这 ...

  8. js中退出语句break,continue和return 比较

    js中退出语句break,continue和return 比较 在 break,continue和return 三个关键字中, break,continue是一起的,return 是函数返回语句,但是 ...

  9. [java学习笔记]java语言基础概述之转义字符&break&continue

    1.转义字符 \t:制表符 \n:回车 \b:退格 \r:回车 \":双引号 \\:反斜线(常用于文件路径的书写中)   windows系统中回车符其实是由两个符号组成的,\r\n linu ...

  10. JS中break continue和return的用法?

    在 break,continue和return 三个关键字中, break,continue是一起的,return 是函数返回语句,但是返回的同时也将函数停止 break和continue: 退出循环 ...

随机推荐

  1. python入门知识点(下)

    51.函数的文档注释及作用 """ 函数的文档注释: 函数的注释文字. 必须添加到函数定义的那一行的下面一行. 好处: 当使用Ctrl + Q查看函数的使用说明文档时,能 ...

  2. DataGrid的列上添加日期控件

    今天的使用EasyUI datagrid的时候,遇到了如下问题,如下图:

  3. Notepad++安装json插件

    安装  : 1.下载插件压缩包并解压出dll:NPPJSONViewer.dll(64位) 下载地址:https://pan.baidu.com/s/1JeBzrovb-GHRo14vO-AnJA 提 ...

  4. ubuntu 安装 firefox 的 jre plugin

    https://www.java.com/en/download/help/enable_browser_ubuntu.xml Mozilla Firefox Become the root user ...

  5. 雷林鹏分享:jQuery EasyUI 树形菜单 - 树形网格惰性加载节点

    jQuery EasyUI 树形菜单 - 树形网格惰性加载节点 有时我们已经得到充分的分层树形网格(TreeGrid)的数据. 我们还想让树形网格(TreeGrid)按层次惰性加载节点. 首先,只加载 ...

  6. (转) 6 ways of mean-centering data in R

    6 ways of mean-centering data in R 怎么scale我们的数据? 还是要看我们自己数据的特征. 如何找到我们数据的中心? Cluster analysis with K ...

  7. java ----> java.lang.NoClassDefFoundError

    环境: centos 6.10,vim,jdk1.8_u72,zookeeper-3.4.6,maven3+ 正文: 使用zk的api操作创建节点发生java.lang.NoClassDefFound ...

  8. LeetCode--374--猜数字大小

    问题描述: 我们正在玩一个猜数字游戏. 游戏规则如下: 我从 1 到 n 选择一个数字. 你需要猜我选择了哪个数字. 每次你猜错了,我会告诉你这个数字是大了还是小了. 你调用一个预先定义好的接口 gu ...

  9. Spring Batch 基本的批处理指导原则

    下面是一些关键的指导原则,可以在构批量处理解决方案可以参考: 请记住,通常皮脸处理体系结构将会影响在线应用的体系结构,同时反过来也是一样的.在你为批量任务和在线应用进行设计架构和环境的时候请尽可能的使 ...

  10. Search中的剪枝-奇偶剪枝

    设有一矩阵如下: 0 1 0 1 0 1 1 0 1 0 1 0 0 1 0 1 0 1 1 0 1 0 1 0 0 1 0 1 0 1 从为 0 的格子走一步,必然走向为 1 的格子 .//只能走四 ...