黑马程序员技术交流社区
标题:
下面的代码有什么不妥之处?
[打印本页]
作者:
黑马高明辉
时间:
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. if(username.equals(“zxx”){}
2. int x = 1;
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
已经有很多人回复了!
我就简单说一下!
个人建议最好写成
if("xx".equals(username)){}
复制代码
好处在于前面的"xx"绝不会不为空。而如果将username放在前面,
那么当传入的username为空时,将会报空指针异常。
我不知道你为什么要用三目运算符!这个东西的效率其实是很慢的。
不信的话你可以去测试一下。
还有个人建议 如果是返回true或者是false.可以boolean b = false;先申明下。。
作者:
杨志
时间:
2012-7-26 12:57
我只能说我没有看过楼上的帖子! 没想到楼上已经都详细分析了!早知道就不浪费口舌了!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2