如果需要组合布尔表达式,我们通常使用逻辑运算符。如果不使用逻辑运算符,我想知道表达式。
int x=101;
if(90<=x<=100)
cout<<'A';
此代码仍在控制台上打印“A”。你能帮我理解这个布尔表达式的计算方式和顺序吗?
如果需要组合布尔表达式,我们通常使用逻辑运算符。如果不使用逻辑运算符,我想知道表达式。
int x=101;
if(90<=x<=100)
cout<<'A';
此代码仍在控制台上打印“A”。你能帮我理解这个布尔表达式的计算方式和顺序吗?
由于运算符具有相同的优先级,因此从左到右计算表达式:
if( (90 <= x) <= 100 )
if( (90 <= 101) <= 100 ) // substitute x's value
if( true <= 100 ) // evaluate the first <= operator
if( 1 <= 100 ) // implicit integer promotion for true to int
if( true ) // evaluate the second <= operator
要实现您想要的比较,您将使用条件:
if( 90 <= x && x <= 100)
这是错误的常见来源,因为它看起来正确,并且在语法上是正确的。
int x=101;
if(90<=x<=100)
这相当于
if ( (90 <= x) <= 100)
这是
if ( true <= 100 )
并且true
可以转换1
为
if ( true )
这个表达式大致等于
int x=101;
bool b1 = 90 <= x; // true
bool b2 = int(b1) <= 100; // 1 <= 100 // true
if(b2)
cout<<'A';
所以这是真实的结果。