黑马程序员技术交流社区

标题: 下面的代码有什么不妥之处? [打印本页]

作者: 黑马高明辉    时间: 2012-7-26 00:30
标题: 下面的代码有什么不妥之处?
下面的代码有什么不妥之处?
        1. if(username.equals(“zxx”){}
        2.        int  x = 1;
                        return x==1?true:false;
帮解释解释,我没想出来。
作者: 韦念欣    时间: 2012-7-26 00:34
首先,if语句后面的花括号里面的内容为空,其次直接返回就行了,不需要三目运算符。
这段代码的意思可能是这样的:
if(username.equals(“zxx”){
       int  x = 1;
       return x==1;
}
作者: 韩爽    时间: 2012-7-26 00:43
  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


作者: 李菁    时间: 2012-7-26 00:51
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吧。
作者: 杨志    时间: 2012-7-26 12:56
已经有很多人回复了!
我就简单说一下!
个人建议最好写成
  1. if("xx".equals(username)){}
复制代码
好处在于前面的"xx"绝不会不为空。而如果将username放在前面,
那么当传入的username为空时,将会报空指针异常。
我不知道你为什么要用三目运算符!这个东西的效率其实是很慢的。
不信的话你可以去测试一下。
还有个人建议 如果是返回true或者是false.可以boolean b = false;先申明下。。
作者: 杨志    时间: 2012-7-26 12:57
我只能说我没有看过楼上的帖子! 没想到楼上已经都详细分析了!早知道就不浪费口舌了!




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