if语句中对零变量的判断
时间:2010-09-02
来源:互联网
场景一:Variable是a,如果a等于0,就返回。
程序11:
if (a==0) return 0;
程序12:
if( !a ) return 0;
场景二:Variables是a和b,如果a和b之一等于0,就返回。
程序21:
if ((a==0) || (b==0)) return 0;
程序22:
if( !a || !b ) return 0;
我的问题就是程序11和12所代表的判断方式(==判断) 与 程序21和22所代表的判断方式(!=判断) 之间有无优劣之分?
作者: sunluky 发布时间: 2010-09-02
如果a用来表示逻辑,就用逻辑判定。
视上下文而定,就像NULL是专门用来给指针赋值的0,'\0'是专门给字符赋值的0一样
作者: davelv 发布时间: 2010-09-02
恩,你说得不错。但如果这个变量(int或者char)都能用==和!=来判断呢,那两种方法之间有没有哪个更好这一说呢? 我其实就是想知道==和!=哪个更好?还是一样好?
作者: sunluky 发布时间: 2010-09-02
PS:程序22里头你打错了吧,应该是&&吧= =!
作者: daybreakcx 发布时间: 2010-09-02
恩,你说得不错。但如果这个变量(int或者char)都能用==和!=来判断呢,那两种方法之间有没 ...
sunluky 发表于 2010-09-02 09:11
我上面的意思其实就是,让人更容易看懂你的代码就是最好的。
作者: davelv 发布时间: 2010-09-02
作者: 论坛ID 发布时间: 2010-09-02
呵呵,眼神很犀利啊
作者: sunluky 发布时间: 2010-09-02
以前,用if的特性来判断,可能是为了节省存储。
作者: noword2k 发布时间: 2010-09-02
我是这样想的,判断一个变量为零,计算机是需要对二进制码每一位进行判断后才得出为0,而判断非零只要在二进制码中找到一个非零就可以了,是不是效率更高点?
作者: sunluky 发布时间: 2010-09-02
我是这样想的,判断一个变量为零,计算机是需要对二进制码每一位进行判断后才得出为0,而 ...
sunluky 发表于 2010-09-02 09:26
这种程度的优化,编译器会帮你做。
作者: noword2k 发布时间: 2010-09-02
你说的是汇编阿,汇编判断用的就是cmpl指令,并不是一个位一个位判断的。
作者: 论坛ID 发布时间: 2010-09-02
作者: 论坛ID 发布时间: 2010-09-02
作者: zhangsuozhu 发布时间: 2010-09-02
作者: daybreakcx 发布时间: 2010-09-02
作者: sunluky 发布时间: 2010-09-02
你说的是汇编阿,汇编判断用的就是cmpl指令,并不是一个位一个位判断的。
论坛ID 发表于 2010-09-02 09:31
判断是不是0,用test eax,eax最快。
作者: noword2k 发布时间: 2010-09-02
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28