关于if语句的条件
博客专区 > macwe 的博客 > 博客详情
关于if语句的条件
macwe 发表于5年前
关于if语句的条件
  • 发表于 5年前
  • 阅读 47
  • 收藏 0
  • 点赞 0
  • 评论 0

移动开发云端新模式探索实践 >>>   

(每个程序猿多少有些完美主义,对于程序猿来说写的每一行代码都像自己的孩子一样必须严格要求,甚至有些苛刻,在这里我就死磕自己一回。)

欢迎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这个指针本身是不是为空值。

  • 打赏
  • 点赞
  • 收藏
  • 分享
共有 人打赏支持
粉丝 13
博文 19
码字总数 22304
×
macwe
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: