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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 黑马高明辉 中级黑马   /  2012-7-26 00:30  /  2465 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

下面的代码有什么不妥之处?
        1. if(username.equals(“zxx”){}
        2.        int  x = 1;
                        return x==1?true:false;
帮解释解释,我没想出来。

5 个回复

倒序浏览
首先,if语句后面的花括号里面的内容为空,其次直接返回就行了,不需要三目运算符。
这段代码的意思可能是这样的:
if(username.equals(“zxx”){
       int  x = 1;
       return x==1;
}

点评

口头表扬一次,  发表于 2012-7-26 00:56
回复 使用道具 举报
  1. 1. if(username.equals(“zxx”){}
  2. 2. int x = 1;
  3. return x==1?true:false
复制代码
既然已经出现返回值  return ,就不用true:false,如果你想判断,那就写在IF的{}里。
这里是参数传递的细节:http://bbs.itheima.com/forum.php?mod=viewthread&tid=19871

评分

参与人数 1技术分 +1 收起 理由
田向向 + 1 赞一个!

查看全部评分

回复 使用道具 举报
1. if(username.equals(“zxx”){}  缺一个)括号,你确定if里面什么都不写吗
        2.        int  x = 1;
                        return x==1?true:false;

我想你的代码应该是这个意思
if(username.equals("zxx")){
    int x=1;   x要在if外声明,因为你要return x,声明在if里面,外边x就会报错,这就是变量的作用域
}
return x==1?true:false;  x是int型的,说明你的方法返回值是int类型,你的三元表达式的意思是如果x的值是1,为true,否则为false。返回值是int,所以,不能用true和false
首先,username没声明变量,所以不能比较。
你是想如果username的值是zxx的话,x=1吧。

评分

参与人数 1技术分 +1 收起 理由
田向向 + 1 赞一个!

查看全部评分

回复 使用道具 举报
已经有很多人回复了!
我就简单说一下!
个人建议最好写成
  1. if("xx".equals(username)){}
复制代码
好处在于前面的"xx"绝不会不为空。而如果将username放在前面,
那么当传入的username为空时,将会报空指针异常。
我不知道你为什么要用三目运算符!这个东西的效率其实是很慢的。
不信的话你可以去测试一下。
还有个人建议 如果是返回true或者是false.可以boolean b = false;先申明下。。
回复 使用道具 举报
我只能说我没有看过楼上的帖子! 没想到楼上已经都详细分析了!早知道就不浪费口舌了!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马