看下这两段程序的输出结果!解释一下原因!

Mime_mi 2011-12-22 12:44:05
int x = -5 ;
if( 0<x<10 )
cout<<"* * *\n";
else
cout<<"# # #\n";





int x = -5 ;
if(x>0&&x<10 )
cout<<"* * *\n";
else
cout<<"# # #\n";

...全文
52 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
yisikaipu 2011-12-22
  • 打赏
  • 举报
回复
0<x<10

(0<x)<10

其中0<x是bool型,结果不管是false还是true,提升为整型都小于10,(0<x)总是<10,所以
0<x<10

的结果总是true
iamnobody 2011-12-22
  • 打赏
  • 举报
回复
if( 0<x<10 )

0<x的结果是0或者1,
(0<x)<10的结果肯定是1;因为0和1都小于10;

if(0<x && x< 10);//这个跟上面的是完全不同的
ybjx111 2011-12-22
  • 打赏
  • 举报
回复
if( 0<x<10 )语法不对,这不是数学
卡卡_苏米 2011-12-22
  • 打赏
  • 举报
回复
int x=-5;
if( 0<x<10 )
第一个判断的是0<x 也就是假 为0
然后判断0<10 为真 所以就为真

这种是一步一步判断的 相信楼主了解和下面的if(x>0&&x<10 ) 的区别了吧

第一个根本就不能当做判断条件
ybjx111 2011-12-22
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 ybjx111 的回复:]
if( 0<x<10 )语法不对,这不是数学
[/Quote]
原理是可以编译通过的,应该是if((0<x)<10)了。

64,685

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧