|
![]() |
名片设计 CorelDRAW Illustrator AuotoCAD Painter 其他软件 Photoshop Fireworks Flash |
|
众所周知,return 只能用在有返回类型的函数中,但是有返回值的函数一定要有return吗?return都可以用在函数的哪些地方呢?这是本文需要讨论的问题。 -------------------------------------------------------------------------------- 例一: class test { public String test() { if(true){ return ""; } else{ return ""; } } } 上面这样即可通过编译,但是下面这两个例子却不能通过编译: (一) class test { public String test() { if(true){ return ""; } } } (二) class test { public String test() { if(isTrue()){ return ""; } else if(!isTrue()){//两个if里的判定包括了所有的可能性,但是还是编译期error return ""; } } boolean isTrue(){ return true; } } 结论1: 对于(一),这是因为java编译器认定单独的if语句只在当一定条件满意情况下才执行,它认为if不会有任何情况下都能执行的能力。 对于(二),这是因为java编译器对if else 语句能够全面囊括所有情况的能力只限定在的if...else(或if...else if...else)时,而不包括if...else if。 -------------------------------------------------------------------------------- 再看例二: class test { public String test() { while(true){ return ""; } } } 上面这样即可通过编译,但是下面这样不行: class test { public String test() { while(isTrue()){ return ""; } } boolean isTrue(){ return true; } } 结论2: 这是因为编译器认为while语句有在任何情况下都能执行的能力,但是只在入参为true的情况下有该能力。 -------------------------------------------------------------------------------- 再看例三: public class test { String test() throws Exception{ throw new Exception();//抛出非常后,跳出程序,程序中止 } } 结论3: 假如函数中创建了非常,并抛出,则该函数可以不返回值。 -------------------------------------------------------------------------------- 知道了以上的情况,你就可以纯熟自如得运用return了。 返回类别: 教程 上一教程: 不用JDBC:ODBC BRIDGE直接操作ACCESS 数据库 下一教程: 字节码如何防止内存错误及提高代码质量 您可以阅读与"JAVA 语言中的 RETURN 语句"相关的教程: · Java 语言中的 return 语句 · 第三讲 Java语言中的面向对象特性 · JAVA语言中字符的处理 · Java语言中链表和双向链表的实现 · JAVA语言中链表和双向链表的实现 |
![]() ![]() |
快精灵印艺坊 版权所有 |
首页![]() ![]() ![]() ![]() ![]() ![]() ![]() |