黑马程序员技术交流社区

标题: return 小问题一枚 [打印本页]

作者: Linsanity    时间: 2012-6-17 18:24
标题: return 小问题一枚
package Test.return;

public class returnDemo {

        /**
         * @param args
         */
        public static void main(String[] args) {
                // TODO Auto-generated method stub
                returnDemo rd=new returnDemo();
                //rd.print();
                System.out.println(rd.print());
        }
        String print(){
                System.out.println("fads");
                return "nihaho";
        }
       

}
result:
fads
nihaho
问:return String 还执行里面的System.out.println("fads")  ?

作者: 张_涛    时间: 2012-6-17 18:28
System.out.println(rd.print());
1. 这里是不是调用了print()方法,因此有了fads的输出
2. System.out.println(rd.print());这条语句的意思是什么,讲print()方法的返回值打印出来,因此有了nihaho的输出

作者: 王杰    时间: 2012-6-17 18:56
对呀 执行了呀
作者: 朝哥    时间: 2012-6-17 19:18
楼主一定要要知道代码是怎么读的:
我来形象化描述:
我就是那java虚拟机,来读class的。我先找入口main函数
在里面我是按从上到下的顺序读的。
我碰到循环,我进去。循环里面也是按照从上到下的顺序读。碰到break,我就跳出该循环,碰到continue,我跨过去继续往下读。
碰到方法,我进方法里面,我在里面也按照从上到下的顺序读。
暂时你先这么理解。
作者: 朝哥    时间: 2012-6-17 19:19
所以你的代码中会执行里面的System.out.println("fads")
作者: 黑马_张佳超    时间: 2012-6-17 19:22
rd调用print()时,先执行的print()方法内的控制台输出语句,即打印的fads,然后执行return语句,方法执行返回"nihaho",最后将return返回的nihano通过控制台输出
作者: 孙飞    时间: 2012-6-17 19:42
今天刚看了第三天的函数,我感觉,函数中执行语句中的输出语句是会执行的,但如果函数的返回值类型不是void的话就必须有return返回语句,会返回一个值,那么程序员的目的就是要的返回值,在函数中直接输出,完全没有必要,再说了,输出是主函数的事
作者: 余银桂    时间: 2012-6-17 19:43
        String print(){
                 System.out.println("fads");
                 return "nihaho";


程序从上往下执行,先要执行输出打印,所有结果中有 fads  ,之后再返回String值。
作者: 黑马黄宏强    时间: 2012-6-17 21:02
之所以执行结果会有fasd和nihao是因为你调用了print()方法里面有在控制台输出fasd的操作,而nihao是这个方法的返回值。fasd是方法运行中的操作,而nihao才是这方法的最总返回值
作者: 申振华    时间: 2012-6-17 22:18
程序的执行结构 分:顺序结构 循环结构 和选择结构
你所写的方法执行的是顺序结构  所以方法体中先执行system.out.printn()然会返回return 语句的内容  
作者: 胡大强    时间: 2012-6-18 00:00
//package Test.return;

public class returnDemo {

        public static void main(String[] args) {

                returnDemo rd=new returnDemo();
                //rd.print();
                System.out.println(rd.print());   //这里rd.print(),调用print方法。下面不是输出了fads么、、
        }
        String print(){
             // System.out.println("fads");   //注释掉就没有fads输出了。。
                return "nihaho";
        }
        

}
//很多问题你多调试几遍。。就会慢慢地发现问题所在。
//另外,看了毕老师的视频的话,毕老师讲了一个注释代码找错法。。同理,你也可以注释代码来调试,然后再来发现问题~进而解决!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2