关于if语句的条件
2013-09-25 09:07
246 查看
(每个程序猿多少有些完美主义,对于程序猿来说写的每一行代码都像自己的孩子一样必须严格要求,甚至有些苛刻,在这里我就死磕自己一回。)
欢迎wangyou
提问:
下面关于if条件判断的写法一样吗?
以上1、2、3都是可以判断字符串是不是为空。无论编译还是逻辑上都对,但是我要转牛角尖了。
(写代码的最主要的目的还是给人看的,如果能尽量的帮助别人更容易的看懂代码,那何乐而不为呢。)
第1个:因为if的条件判断是布尔类型的,虽然这里的代码比较简单一眼就能看懂,代码也应该要写得简单明了。但是谁又能保证别人看你代码的时候肚子饿了呢!
这里strLen分明不是布尔类型的变量,只不过正好false = 0罢了,不喜欢这样子用。
第2个:这样写是对的,自认为是比较容易看懂的一个写法,简单清晰,明了。但要是万一把那个 感叹号 给忘了敲了正好这是肚子饿了,只有到出现奇怪的问题的时候才想起这里漏了,有点浪费时间。这种情况最容易出现在“==”的时候。
第3种:把常量放到前面总觉得怪怪的,但是这样确实更安全点,但是现在用习惯了,也看习惯了。
第4种:吃饱了撑的。
第5种:这个不是判断字符串是否为空的。这是判断str这个指针本身是不是为空值。
欢迎wangyou
提问:
下面关于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这个指针本身是不是为空值。
相关文章推荐
- windows7系统字体被改了之后怎么还原之前的默认字体
- 64位系统和32位系统的区别
- C语言 打印圣诞树
- 启动服务时,提示“错误1053:服务没有及时相应启动或控制请求”。
- Maven(一)如何创建一个web程序
- C++中的三种继承public,protected,private详细解析
- REVERSE关键字之REVERSE函数
- Windows Server 2012 R2 RTM版安装
- 多核下的并发计数器的高性能实现
- ubuntu 12.04 安装ubuntu-Tweak
- jquery mobile 中的长按操作
- C# 4.0 新機能
- libevent分解之数据结构 小根堆
- 读书
- Windows Server 8.1RTM版本安装
- uva 10280 - Old Wine Into New Bottles(完全背包)
- asp.net Cookie的使用
- 算法学习及面试技巧网
- 机房收费系统之组合查询
- QQ群web前端分析三——pageSpeed