A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

Linsanity

注册黑马

  • 黑马币:0

  • 帖子:5

  • 精华:0

© Linsanity 注册黑马   /  2012-6-17 18:24  /  1979 人查看  /  10 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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")  ?

10 个回复

正序浏览
//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";
        }
        

}
//很多问题你多调试几遍。。就会慢慢地发现问题所在。
//另外,看了毕老师的视频的话,毕老师讲了一个注释代码找错法。。同理,你也可以注释代码来调试,然后再来发现问题~进而解决!
回复 使用道具 举报
程序的执行结构 分:顺序结构 循环结构 和选择结构
你所写的方法执行的是顺序结构  所以方法体中先执行system.out.printn()然会返回return 语句的内容  
回复 使用道具 举报
之所以执行结果会有fasd和nihao是因为你调用了print()方法里面有在控制台输出fasd的操作,而nihao是这个方法的返回值。fasd是方法运行中的操作,而nihao才是这方法的最总返回值
回复 使用道具 举报
        String print(){
                 System.out.println("fads");
                 return "nihaho";


程序从上往下执行,先要执行输出打印,所有结果中有 fads  ,之后再返回String值。
回复 使用道具 举报
孙飞 中级黑马 2012-6-17 19:42:36
7#
今天刚看了第三天的函数,我感觉,函数中执行语句中的输出语句是会执行的,但如果函数的返回值类型不是void的话就必须有return返回语句,会返回一个值,那么程序员的目的就是要的返回值,在函数中直接输出,完全没有必要,再说了,输出是主函数的事
回复 使用道具 举报
rd调用print()时,先执行的print()方法内的控制台输出语句,即打印的fads,然后执行return语句,方法执行返回"nihaho",最后将return返回的nihano通过控制台输出
回复 使用道具 举报
所以你的代码中会执行里面的System.out.println("fads")
回复 使用道具 举报
楼主一定要要知道代码是怎么读的:
我来形象化描述:
我就是那java虚拟机,来读class的。我先找入口main函数
在里面我是按从上到下的顺序读的。
我碰到循环,我进去。循环里面也是按照从上到下的顺序读。碰到break,我就跳出该循环,碰到continue,我跨过去继续往下读。
碰到方法,我进方法里面,我在里面也按照从上到下的顺序读。
暂时你先这么理解。
回复 使用道具 举报
对呀 执行了呀
回复 使用道具 举报
System.out.println(rd.print());
1. 这里是不是调用了print()方法,因此有了fads的输出
2. System.out.println(rd.print());这条语句的意思是什么,讲print()方法的返回值打印出来,因此有了nihaho的输出
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马