+ -
当前位置:首页 → 问答吧 → 看下这两段程序的输出结果!解释一下原因!

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

时间:2011-12-22

来源:互联网

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";  

作者: Mime_mi   发布时间: 2011-12-22

if( 0<x<10 )语法不对,这不是数学

作者: ybjx111   发布时间: 2011-12-22

if( 0<x<10 )  

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

if(0<x && x< 10);//这个跟上面的是完全不同的

作者: mingliang1212   发布时间: 2011-12-22

0<x<10

(0<x)<10

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

的结果总是true

作者: yisikaipu   发布时间: 2011-12-22

引用 1 楼 ybjx111 的回复:
if( 0<x<10 )语法不对,这不是数学

原理是可以编译通过的,应该是if((0<x)<10)了。

作者: ybjx111   发布时间: 2011-12-22