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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 立志转行 中级黑马   /  2015-5-26 22:43  /  986 人查看  /  13 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

class String3
{
        public static void main(String[] args)
        {
                System.out.println(show());
        }
        public static int show()
        {
                for (int x = 0;x < 5 ;x++ )
                        {
                                if (x == 3)
                                return x;
                        }
                return 5;
        }
}
问题:
1、当x=3的时候,是不是就跳出循环,返回x,而且也不管x是不是局部变量都能return?
2、return5,是不是只是用来通过编译的?运行时不会读到它?



13 个回复

倒序浏览
1、当x=3的时候,是不是就跳出循环,返回x,而且也不管x是不是局部变量都能return?
答案是 对滴,你可以把 return 换成break,这样会更清楚。也就是程序遇到问题半路停止,或者说直接结束

2、return5,是不是只是用来通过编译的?运行时不会读到它?
编译通过,但属于无用的句子,只是满足语法要求,但如果不写会报错,编译不通过。:lol
话说基础视频里有介绍这个问题
回复 使用道具 举报
先为自己顶一下,占个沙发,嘿嘿。。。。
回复 使用道具 举报
1、当x=3的时候,是不是就跳出循环,返回x,而且也不管x是不是局部变量都能return?
不是跳出循环,return是跳出方法,break跟continue才是跳出循环,return是会将return后的东西返回到主函数。

2、return5,是不是只是用来通过编译的?运行时不会读到它?
return5是保证了编译通过,但是其实作用是当for循环中如果没有退出循环的情况就会执行到
回复 使用道具 举报
谢晓明 发表于 2015-5-26 23:20
1、当x=3的时候,是不是就跳出循环,返回x,而且也不管x是不是局部变量都能return?
不是跳出循环,return ...

还是看视频看的不认真啊,受教了!
回复 使用道具 举报
return 5 是为了 方法中返回的类型是int类型的  能编译通过,不会返回给方法的。


语句执行到return X 就会被结束,返回x的值  
回复 使用道具 举报
mmakun 中级黑马 2015-5-27 08:39:28
7#
当x为3时,直接跳出函数了
回复 使用道具 举报
return 跳出它所属的代码块
回复 使用道具 举报
谢谢各位!现在明白了!:victory:
回复 使用道具 举报
for循环里面的return是用来返回值并结束for循环语句的
for循环外面的return是用来配合int类型的方法使用的,为了保证程序编译能通过
回复 使用道具 举报
灯火通明 来自手机 中级黑马 2015-5-27 12:35:17
11#
return可结束方法
回复 使用道具 举报
学习了:victory:
回复 使用道具 举报
如到return ,函数就完了
回复 使用道具 举报
楼上都是正解~~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马