|
![]() |
名片设计 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了。 返回类别: 教程 上一教程: 使用 Java 连接处于proxy(or 防火墙)之外的HTTP服务器 下一教程: 好久没来了,大家下载几个带源码的例子吧,BBS,Counter,guestbook,and so on 您可以阅读与"Java 语言中的 return 语句"相关的教程: · JAVA 语言中的 RETURN 语句 · 第三讲 Java语言中的面向对象特性 · Java语言中链表和双向链表的实现 · Java语言中字符的处理 · JAVA语言中字符的处理 |
![]() ![]() |
快精灵印艺坊 版权所有 |
首页![]() ![]() ![]() ![]() ![]() ![]() ![]() |