关于if语句的条件
2013-09-25 09:30
399 查看
(每个程序猿多少有些完美主义,对于程序猿来说写的每一行代码都像自己的孩子一样必须严格要求,甚至有些苛刻,在这里我就死磕自己一回。)
欢迎广大网友拍砖!!!
提问:
下面关于if条件判断的写法一样吗?
以上1、2、3都是可以判断字符串是不是为空。无论编译还是逻辑上都对,但是我要转牛角尖了。
(写代码的最主要的目的还是给人看的,如果能尽量的帮助别人更容易的看懂代码,那何乐而不为呢。)
第1个:因为if的条件判断是布尔类型的,虽然这里的代码比较简单一眼就能看懂,代码也应该要写得简单明了。但是谁又能保证别人看你代码的时候肚子饿了呢!
这里strLen分明不是布尔类型的变量,只不过正好false = 0罢了,不喜欢这样子用。
第2个:这样写是对的,自认为是比较容易看懂的一个写法,简单清晰,明了。但要是万一把那个 感叹号 给忘了敲了正好这是肚子饿了,只有到出现奇怪的问题的时候才想起这里漏了,有点浪费时间。这种情况最容易出现在“==”的时候。
第3种:把常量放到前面总觉得怪怪的,但是这样确实更安全点,但是现在用习惯了,也看习惯了。
第4种:吃饱了撑的。
第5种:这个不是判断字符串是否为空的。这是判断str这个指针本身是不是为空值。
欢迎广大网友拍砖!!!
提问:
下面关于if条件判断的写法一样吗?
char *str = GetString(...); int strLen = strlen(str); //! 满足条件的情况:如果字符串str不为空 //! 1 if (strLen) { ... } //! 2 if (strLen != 0) { ... } //! 3 if (0 != strLen) { ... } //! 4 if (!(0 == strlen)) { ... } //! 5 if (0 != str) { ... }
以上1、2、3都是可以判断字符串是不是为空。无论编译还是逻辑上都对,但是我要转牛角尖了。
(写代码的最主要的目的还是给人看的,如果能尽量的帮助别人更容易的看懂代码,那何乐而不为呢。)
第1个:因为if的条件判断是布尔类型的,虽然这里的代码比较简单一眼就能看懂,代码也应该要写得简单明了。但是谁又能保证别人看你代码的时候肚子饿了呢!
这里strLen分明不是布尔类型的变量,只不过正好false = 0罢了,不喜欢这样子用。
第2个:这样写是对的,自认为是比较容易看懂的一个写法,简单清晰,明了。但要是万一把那个 感叹号 给忘了敲了正好这是肚子饿了,只有到出现奇怪的问题的时候才想起这里漏了,有点浪费时间。这种情况最容易出现在“==”的时候。
第3种:把常量放到前面总觉得怪怪的,但是这样确实更安全点,但是现在用习惯了,也看习惯了。
第4种:吃饱了撑的。
第5种:这个不是判断字符串是否为空的。这是判断str这个指针本身是不是为空值。
相关文章推荐
- C# 打开 运行..
- 转ubuntu下中文乱码解决方案(全)
- linux 查找大目录大文件
- linux 时间同步
- 百度竞价推广后找不到网站?
- C++ Placement New
- ios消息推送机制原理与实现
- Qt排序问题
- 记录一下oracle存储过程中出现异常并继续执行的问题
- nginx防止攻击
- 【JSP的隐式对象的实例】
- API
- WPF 将Bitmapsource转换到Emgu.cv.image
- Android 官方博客 - Android应用程序的内存分析(翻译)(转)
- java ==和equals区别
- 【JAVA设计模式之接口模式】
- linux nfs
- DLL加载顺序
- C# 键盘钩子
- 即时通讯开发平台AnyChat的开发流程及应用