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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© ImKing 中级黑马   /  2016-7-11 16:20  /  2121 人查看  /  24 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 ImKing 于 2016-7-11 16:29 编辑

if 语句中的条件表达式,了解了 2 中书写方式。参考资料说是第二种比较好,但是总感觉第二种写起来有些别扭,,,求指教 {:3_56:}
也就是变量放在双等号的右边,常量放在左边,,,,
  1. int location = 0;
  2. // 第一种
  3. if (location == -1) {
  4.         // ...
  5. }
  6. // 第二种
  7. if (-1 == location) {
  8.         // ...
  9. }
复制代码









24 个回复

正序浏览
theape 发表于 2016-7-14 18:18
这个问题看来要从人的角度去分析,因为对机器来说没有区别。

哈哈哈,,,见解独特 {:2_36:}
回复 使用道具 举报
这个问题看来要从人的角度去分析,因为对机器来说没有区别。
回复 使用道具 举报
第二种,楼上的大神已经说得很明白了,,
回复 使用道具 举报
syso信任 发表于 2016-7-13 09:34
第二种好一点,,,,第一种,可能有时会不小心写成一个=,就成了赋值

嗯嗯,这种观点也有一些支持的呢,有的人也考虑了代码的可读性问题。大家各抒己见哈{:2_36:}
回复 使用道具 举报
第二种好一点,,,,第一种,可能有时会不小心写成一个=,就成了赋值
           

点评

看 11 楼哟  发表于 2016-7-13 10:46
回复 使用道具 举报
夏萱 发表于 2016-7-12 17:11
确实第二种对调试有利,但是我还是选择第一种写法,因为代码和思路一致敲代码比较连贯
重点是我好像没混淆 ...

嗯嗯,确实{:2_36:}
回复 使用道具 举报
确实第二种对调试有利,但是我还是选择第一种写法,因为代码和思路一致敲代码比较连贯
重点是我好像没混淆过 == 和 = (∩_∩)

点评

看 11 楼哟 0.0  发表于 2016-7-12 17:46
回复 使用道具 举报
745661590 发表于 2016-7-12 01:31
我都是用第一种  习惯吧   一看就明白
---------- 编辑Java ----------
HelloWorld.java:11: 错误: 不兼容 ...

嗯呢,{:2_36:}
回复 使用道具 举报
我都是用第一种  习惯吧   一看就明白
---------- 编辑Java ----------
HelloWorld.java:11: 错误: 不兼容的类型: int无法转换为boolean
                        if ( x = 0 ) {
                               ^
并且如果写错程序也会直接提醒,我用的是EditPlus
回复 使用道具 举报
cat73 发表于 2016-7-12 00:16
实际上 Eclipse 有针对 if(a = b) 这种写法的检查,默认情况下是忽略的,只要把它改成警告就可以避免这种问 ...

嗯嗯,观点鲜明。那就要做好取舍了,,,这也是我认为第一种方法别扭的原因吧。
谢谢你的分析 {:2_36:}

点评

人总是会犯错的,需要顾及的地方越多越容易犯错,让机器来分担一部分检查能更好的避免出错,以及分出更多的时间来关注问题的本质。  发表于 2016-7-12 00:38
回复 使用道具 举报
cat73 黑马帝 2016-7-12 00:16:39
11#
本帖最后由 cat73 于 2016-7-12 00:23 编辑

实际上 Eclipse 有针对 if(a = b) 这种写法的检查,默认情况下是忽略的,只要把它改成警告就可以避免这种问题了。


我认为代码还是可读性高的写法好。
回复 使用道具 举报
896575538 发表于 2016-7-11 23:11
一般来说都会把常量放在比较运算符的前面更好一些,因为如果变量有什么意外的话会更好处理 ...

嗯嗯,受教了,这回肯定要纠正过来 {:3_57:}
回复 使用道具 举报
ImKing 中级黑马 2016-7-12 00:10:16
9#
lsp0523 发表于 2016-7-11 22:55
习惯用好的方式书写代码,第二种明显比第一种更精良。

嗯嗯,谢谢,指点{:3_56:}
回复 使用道具 举报
ImKing 中级黑马 2016-7-12 00:09:13
8#
robintian 发表于 2016-7-11 22:53
java语言的机制要好一点,if里面的值必须是boolean类型的,但是C语言就不同了,C语言的if里面直接写x=3之 ...

嗯嗯,好的,必须养成良好的习惯,,,
谢谢 {:2_36:} 加油
回复 使用道具 举报
一般来说都会把常量放在比较运算符的前面更好一些,因为如果变量有什么意外的话会更好处理
回复 使用道具 举报
习惯用好的方式书写代码,第二种明显比第一种更精良。

点评

没看出来哪里精良。。。  发表于 2016-7-11 23:30
回复 使用道具 举报
ImKing 发表于 2016-7-11 22:48
嗯嗯,谢谢。
可能是不太熟练的原因吧,总感觉第二种写出来乖乖的感觉,,,
虽然第二种颜值不 ...

java语言的机制要好一点,if里面的值必须是boolean类型的,但是C语言就不同了,C语言的if里面直接写x=3之类的赋值语句都是没问题的,所以以前用C语言的时候就必须用第二种方式了,不然说不定就出错了。你强制自己多多练习这种写法,习惯了就好了。
回复 使用道具 举报
robintian 发表于 2016-7-11 22:45
第二种好,举个例子,如果flag的实际值是false,而你的判断语句是flag==true,可能你一不小心写成了flag=tru ...

嗯嗯,谢谢。
可能是不太熟练的原因吧,总感觉第二种写出来乖乖的感觉,,,
虽然第二种颜值不高吧,但以后尽量养成这种编写的习惯,加油
回复 使用道具 举报
第二种好,举个例子,如果flag的实际值是false,而你的判断语句是flag==true,可能你一不小心写成了flag=true,编译和运行都不会错的,但是结果就不对了,如果你是写成flase == flag,一旦你写成了false = flag,直接编译出错。这样一下就对比出来好坏了。
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马