Java与C++差异之return
来源:互联网 发布:2016淘宝卖家怎么推广 编辑:程序博客网 时间:2024/06/05 04:12
在返回值不是void的情况下,即必须有返回值的情况下,C++可以没有默认返回值,而Java必须有默认的返回值。
举一个简单的例子,max函数,在c++中,可以写作如下。
int max (int a,int b){<span style="white-space:pre"></span>if(a>b)<span style="white-space:pre"></span>return a;<span style="white-space:pre"></span>else if(a<b)<span style="white-space:pre"></span>return b;}
当输入max(2,2)的情况下,编译并不报错,运行返回2。单步调试未执行任何一步,而是返回2,不能理解。
在java中,上述程序编译不能通过,java需要确定的return以防止程序员情况考虑不周而运行出错。
上述程序需改为以下,固定的return。
int max (int a,int b){<span style="white-space:pre"></span>if(a>b)<span style="white-space:pre"></span>return a;<span style="white-space:pre"></span>else if(a<b)<span style="white-space:pre"></span>return b;<span style="white-space:pre"></span>return a;}如果c++的程序写成以上的样子,if 的return 之后居然还会继续return 最后一步的值,非常不能理解,代码如下:
int findrange(vector<int> &num,int left,int right){<span style="white-space:pre"></span>if (left==right){<span style="white-space:pre"></span>return num[left];<span style="white-space:pre"></span>else if (right-left==1){<span style="white-space:pre"></span>return num[left]<num[right]?num[left]:num[right];<span style="white-space:pre"></span>}else if(right-left>1){<span style="white-space:pre"></span>int mid=(left+right)/2;<span style="white-space:pre"></span>if (num[mid]>num[left]){<span style="white-space:pre"></span>findrange(num,mid,right);<span style="white-space:pre"></span>}else if(num[mid]<num[left]){<span style="white-space:pre"></span>findrange(num,left,mid);<span style="white-space:pre"></span>}<span style="white-space:pre"></span>}<span style="white-space:pre"></span>return num[left];}
0 0
- Java与C++差异之return
- C语言之return与exit
- Java与C++之数组差异
- java面试之finally与return
- ++运算符在C/C++与C#/JAVA中的差异
- C/C++与Java的之间的差异
- C 预言与java预言数据类型的差异
- Python基础语法与C、JAVA差异点
- java return 与 finally
- 【Java与C++之间的一些差异】之 方法重载
- MD5加密应用之.NET与JAVA差异分析
- Object-c与c++差异
- 【C++与C差异】字符串
- 【c++与c差异】重载
- Java的自学之路-return与break的差别
- C、C++差异之左值右值
- 小菜学C之return
- Java与C++的差异
- Android四大基本组件介绍与生命周期
- 如何解决在Xp系统中应用程序有2G内存的限制
- C语言-学习---1
- iOS 基础:证书介绍
- Collect preferences failed, class java/lang/AutoCloseable not found in C:\Program Files (x86)\Androi
- Java与C++差异之return
- [sdio] Common Information Area (CIA) 分析及初始化过程
- iOS 绘图 Quartz 2D
- SQL Server option(recompile)
- C++中对二进制文件读取问题
- quick-lua创建骨骼动画
- java基础 之 HashMap统计csv文件的单词
- PL/SQL Developer 中文乱码问题的解决
- 010005 专注的做一个研究型的美男子