黑马程序员技术交流社区

标题: if((b == true) 有什么不妥 [打印本页]

作者: toShareBeauty    时间: 2013-7-24 21:36
标题: if((b == true) 有什么不妥
本帖最后由 toShareBeauty 于 2013-7-24 22:45 编辑

在张老师的视频里面有提到这个,但是没有给答案

boolean b =true;
if(b == true) {
}

//上面的代码,有什么不妥


作者: 王磊    时间: 2013-7-24 21:40
在代码的运行上,没什么不妥。只是逻辑上会使人感觉到这种写法比较多余。
if的判断内容相当于true==true  这样永远都是相等的,if判断到是真就可以了,为什么还要多此一举判断一下真是真呢、、、
作者: toShareBeauty    时间: 2013-7-24 21:41
本帖最后由 toShareBeauty 于 2013-7-24 21:42 编辑
王磊 发表于 2013-7-24 21:40
在代码的运行上,没什么不妥。只是逻辑上会使人感觉到这种写法比较多余。
if的判断内容相当于true==true   ...

b 是个变量,它的值是不确定的,在程序运行的时候才知道是 true 或者 false。习惯了 C 的人不容易改过来啊,这都是 C 写很多的人的习惯。
作者: 王磊    时间: 2013-7-24 21:47
toShareBeauty 发表于 2013-7-24 21:41
b 是个变量,它的值是不确定的,在程序运行的时候才知道是 true 或者 false。 ...

你将b的类型定义成了boolean类型,本身就可以被if识别了,为什么还要在去强调一下这个boolean类型到底是不是真呢?

苹果是水果,将这个判断的结果定义成了b,那么b的值就是真,这时让系统去判断,b是不是真,就等于问系统" '苹果是水果'是真的,是真的吗?"

这种判断不就没什么意义了么。。。
作者: toShareBeauty    时间: 2013-7-24 21:49
王磊 发表于 2013-7-24 21:47
你将b的类型定义成了boolean类型,本身就可以被if识别了,为什么还要在去强调一下这个boolean类型到底是 ...

恩,这个说法对,java 和 c 不同,c int 都可以用来做 boolean 判断,有没有其他补充!
作者: 江纳纳    时间: 2013-7-24 21:55
写法比较多余,不够简洁,if(condition) 本来就是condition为true的时候执行。
作者: 王磊    时间: 2013-7-24 21:57
toShareBeauty 发表于 2013-7-24 21:49
恩,这个说法对,java 和 c 不同,c int 都可以用来做 boolean 判断,有没有其他补充! ...

记得C里面没有明确的boolean类型变量,之所以能用int进行判断,是c默认的int类型可以将0作为false,非0作为true。

个人感觉c的这种方法是个双刃剑,有利有弊吧。好处:可能就是用作判断的时候比较灵活。但是弊端个人感觉也是因为它太灵活了,导致有一些判断上要用很多限制代码来维持这种判断的范围性。
作者: の放下执著    时间: 2013-7-24 22:28
没什么不妥,能运行出来,感觉有点像c++里面的风格
作者: toShareBeauty    时间: 2013-7-24 22:45
谢谢各位




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