| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 387 人关注过本帖
标题:问一个判断范围的问题,请大神指教!
只看楼主 加入收藏
胡胡熊
Rank: 1
等 级:新手上路
帖 子:23
专家分:5
注 册:2014-3-13
结帖率:77.78%
收藏
已结贴  问题点数:10 回复次数:3 
问一个判断范围的问题,请大神指教!
我想表示 如果“a不在0-11这个范围内”或者“b不在0-11这个范围内”,但是我的表达式写得很复杂:if((a>11) || (a<0) || (b>11) || (b<0)),为什么不能写成 if(!(0<=a<=11) || !(0<=b<=11))? 还有什么其他好的写法吗?

Thank you in advance!
搜索更多相关主题的帖子: 表达式 
2014-04-13 15:57
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:10 
为什么不能写成 if(!(0<=a<=11) || !(0<=b<=11))?

为什么呢 就因为C语言比较【底层】和简单 不允许出现这种写法 你只能把这个表达式拆开了 不能合起来 因为编译器在解析的时候就遵从的简单的从左到右规则 不认你这个

Lisp倒是支持这种表达式
2014-04-13 16:05
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:0 
lisp的表述举个栗子

程序代码:
(setq a 8)
=>8
(<= 0 a 11)
=>t


其中=>是输出内容

我用的是Emacs Lisp
2014-04-13 16:07
szyzln
Rank: 2
来 自:湖南张家界
等 级:论坛游民
帖 子:21
专家分:39
注 册:2013-8-31
收藏
得分:0 
楼上说的有道理。
C编译器不想做得很复杂,还是结构简单的比较好。
a>11 || a<0

支持Linux开源精神
2014-04-13 16:50
快速回复:问一个判断范围的问题,请大神指教!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.049793 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved