break,continue,return的区别 x
这三个东西特别坑,一定要记准了!!
1)break 直接跳出当前的循环,从当前循环外面开始执行,忽略循环体中任何其他语句和循环条件测试。他只能跳出一层循环;
注意:如果你的循环是嵌套循环,那么你需要按照你嵌套的层次,逐步使用break来跳出.
2)continue 也是终止当前的循环过程,但他并不跳出循环,而是继续往下判断循环条件执行语句.他只能结束循环中的一次过程,但不能终止循环继续进行.
3)return 语句可被用来使 正在执行分支程序返回到调用它方法。(我认为这个是比较难理解的)
那么详细的解说return!因为总是搞混……
return表示中止当前函数的运行,并将操作权返回给调用者。
如果是在main函数中,表示将操作权返回给操作系统。
return不是必须要返回一个值。
void func(void)
{
......
......
return;
}
当然,就算不写return,在函数执行完毕后也会返回操作权给调用者。写return是一种清晰的风格,可以防止一些意外的错误。所以书上只说应该写,而不是必须写。
如果符合某个条件要退出的话,可以用return返回,否则可以不写这句代码的,当程序执行到“}”时会自动返回,这个问题其实你自己到机器上试一下就知道了。不过作为一个良好的编程习惯,每个函数都有返回语句倒是对的,这样更有可读性,并利于程序的维护^_^
return 指令一个是返回一个指定数据给主调函数,
另外的一个作用就是 结束 所在函数的执行 ...
子函数中的运算是不能改变main()中已经定义的变量
int add(int a, int b) {
int c;
c=a+b;
}
main() {
int a=,b=, c=;
add(a,b);
printf("\nc=%d\n", c);
}
你可以自己尝试一下看看,这个最后结果还是c=0;
因为计算机执行一个程序的时候 他只看到main();
他十分忠诚的 从main()的第一句 一直执行到最后一句 ;
中间的那个 add()调用;
这时main()函数被挂起 ;
也就是停止运行 系统会把main()放在一块内存x中 ;
这时 系统会把一片内存y划分给add()函数;
也就是说 main()中的abc;和add()中的abc;
并不是同一个东西;
他们只是在数值上相等罢了;
系统首先把a;b;的值传给add;
然后运行;
c=3;
然后系统没有发现add中有return;
也就是 子函数 做完了运算;
但是它并没把内存y中的结果送给main();
这时候 add运行结束;
系统唤醒内存x中的main();
开始运行下一句 这时候 ;
add函数做的一切 都是白干了;
他并没有把他的结果上交给main()函数;
所以c仍然是0;
add(int a, int b) {
int c;
c=a+b;
return c;
}
main() {
int a=, b=, c=;
c=add(a,b);
printf("/nc=%d/n",c);
/*还可以这样写*/
printf("/nc=%d/n",add(a,b));
}
想要通过子函数来改变main()中的东西;
有两个方法:1 return ; 2 通过指针;
但是我不太清楚指针……
所以就这样结束啦~
break,continue,return的区别 x的更多相关文章
- 有关于break,continue,return的区别和代码分析
今天,用代码和结果直接解释break,continue,return的区别 1.break代码 public static void breakTest() { //break的讲解 for(int ...
- break,continue,return的区别
break,continue,return的区别 break 当break语句用于循环语句时,会终止执行循环,并执行循环后代码(如果有的话). function main() { for(var i ...
- 【C#】 break continue return 的区别
static void Main(string[] args) { Console.WriteLine("使用break退出循环"); ; i < ; i++) { ) { ...
- Java中 break continue return 的区别
1.break break :跳出当前循环:但是如果是嵌套循环,则只能跳出当前的这一层循环,只有逐层break才能跳出所有循环: ; i < ; i++) { ) { break; // 在执行 ...
- break,continue,return 的区别
(1)break 跳出当前循环体 (2)continue 跳过当前循环体continue后面的代码,继续执行下一个循环 (3)return 和循环没关系,就是跳出该函数
- js中(break,continue,return)的区别
break 一般用于跳出整个循环(for,while) continue 跳出本次循环,进入下一次循环 return 只能出现在函数体内,一旦执行return,后面的代码将不会执行,经常用retur ...
- Java中关键字continue、break和return的区别
Java中关键字continue.break和return的区别: continue:跳出本次循环继续下一次循环 break: 跳出循环体,继续执行循环外的函数体 return: 跳出整个函数 ...
- JavaScript的continue、break和return的区别
1. continue.break和return的区别 循环遍历. for(let i = 0; i < 5; i++){ console.log(i); // 0 1 2 3 4 } 使用co ...
- js中的break ,continue, return (转)
面向对象编程语法中我们会碰到break ,continue, return这三个常用的关键字,那么关于这三个关键字的使用具体的操作是什么呢?我们在使用这三关键字的时候需要注意和需要理解的规则是什么呢? ...
随机推荐
- ReflectionTest:由输入的类名得到类的信息
package reflection; import java.lang.reflect.*; import java.util.*; public class ReflectionTest { pu ...
- oracle DBA操作
sqlplus sys/tiger as sysdba; alter user scott account unlock; 用户已更改 切换用户:conn scott/tiger as sysdba ...
- DeepID_V2解读
港中文汤晓鸥团队在DeepID_v1基础上提出的新版本架构,发表于NIPS2014 一.Architecture 网络架构基本上与DeepId_v1一致. 二.Pipeline 图片被分成20regi ...
- Python基本数据类型及实例详解
Python 中的变量不需要声明.每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建. 在 Python 中,变量就是变量,它没有类型,我们所说的"类型"是变量所指的内存中对 ...
- Fortify漏洞之Cross-Site Scripting(XSS 跨站脚本攻击)
书接上文,继续对Fortify漏洞进行总结,本篇主要针对XSS跨站脚步攻击漏洞进行总结,如下: 1.Cross-Site Scripting(XSS 跨站脚本攻击) 1.1.产生原因: 1. 数据通过 ...
- 易优cms后台RCE以及任意文件上传漏洞
前言 EyouCms是基于TP5.0框架为核心开发的免费+开源的企业内容管理系统,专注企业建站用户需求提供海量各行业模板,降低中小企业网站建设.网络营销成本,致力于打造用户舒适的建站体验.易优cms ...
- Android笔记(五) Activity的启动模式
Android中Activity是由返回栈来管理的,在默认情况下,每当启动一个新的Activity,它都会在返回栈中入栈,并且出于栈的顶端.但是有些时候Activity已经在栈的顶端了,也就不需要再启 ...
- 【DRF框架】版本控制组件
DRF框架提供的版本控制组件 核心代码: version, scheme = self.determine_version(request, *args, **kwargs)req ...
- 记录java+testng运行selenium(三)---xml、ini、excel、日志等配置
一: ini文件 ini目前只用处存储浏览类型及需要打开的url,ini文件放在configs文件夹下面. 读取ini代码如下: package toolskit.documents; import ...
- [Jenkins][centos]1 持续集成 之 配置VNC,部署Jenkins
痛点:上一篇的AWS部署的VNC不知为啥挂了,死活连不上,因此改申请京东云做部署Jenkins 预计阅读时间:20分钟 更新软件,安装桌面 yum -y update yum -y groupinst ...