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这三个常用的关键字,那么关于这三个关键字的使用具体的操作是什么呢?我们在使用这三关键字的时候需要注意和需要理解的规则是什么呢? ...
随机推荐
- Scala 面向对象编程之对象
此对象非彼java bean对象 是scala object的对象 Object // object,相当于class的单个实例,通常在里面放一些静态的field或者method // 第一次调用ob ...
- mouseenter 与 mouseover 区别于选择
mouseover事件, 箭头在子元素移动会触发冒泡事件, 子元素的鼠标箭头可触父元素方法, 相反,mouseenter事件功能与mouseover类似, 但鼠标进入某个元素不会冒泡触发父元素方法. ...
- The 2018 ACM-ICPC Asia Nanjing Regional Programming Contest
A. Adrien and Austin 大意: $n$个石子, 编号$1$到$n$, 两人轮流操作, 每次删除$1$到$k$个编号连续的石子, 不能操作则输, 求最后胜负情况. 删除一段后变成两堆, ...
- 对称加密,非对称加密,数字签名,https
对称加密和非对称加密 对称加密 概念:加密秘钥和解密秘钥使用相同的秘钥(即加密和解密都必须使用同一个秘钥) 特点:一对一的双向保密通信(每一方既可用该秘钥加密,也可用该秘钥解密,非对称加密是多对一的单 ...
- 用chattr命令防止系统中某个关键文件被修改
用chattr命令防止系统中某个关键文件被修改:# chattr +i /etc/resolv.conf
- 在论坛中出现的比较难的sql问题:25(字符串拆分3)
原文:在论坛中出现的比较难的sql问题:25(字符串拆分3) 最近,在论坛中,遇到了不少比较难的sql问题,虽然自己都能解决,但发现过几天后,就记不起来了,也忘记解决的方法了. 所以,觉得有必要记录下 ...
- [转载]Linux下非root用户如何安装软件
[转载]Linux下非root用户如何安装软件 来源:https://tlanyan.me/work-with-linux-without-root-permission/ 这是本人遇到的实际问题,之 ...
- hibernate saveorupdate方法只有更新有效果,保存没有效果
转自:https://blog.csdn.net/KAIXINLUOYE/article/details/72821014 单主键生成策略由native改成assigned后,问题解决.
- HTML5 - 初识
众所周知,我们现在的手机APP开发模式分为一下几大类: 一.原生APP 二.纯HTML5 三.原生+HTML5 四.React Native 公司的职位划分: 1.平面设计师 : 作图.切图.HTM ...
- shell 函数的高级用法
函数介绍 linux shell中的函数和大多数编程语言中的函数一样 将相似的任务或者代码封装到函数中,供其他地方调用 语法格式 如何调用函数 shell终端中定义函数 [root@master da ...