when I wrote int x; cin>>x; if(10<x>15) it is always false 10<x<15 always true 10>x<15 always true 10>x>15 always false 3<x<0 always false 3>x>0 true for x less than 3 can anyone explain why this is happening???? | SoloLearn: Learn to code for FREE!

+2

when I wrote int x; cin>>x; if(10<x>15) it is always false 10<x<15 always true 10>x<15 always true 10>x>15 always false 3<x<0 always false 3>x>0 true for x less than 3 can anyone explain why this is happening????

c++

10/13/2016 1:44:01 PM

Soutik

3 Answers

New Answer

+2

Look at the first expression, for example, when you write 10<x>15, first, 10<x is evaluated and a boolean variable is returned, which is either true or false (depends on x). this boolean is then casted to an integer, which results in 0 or 1, and tested whether is greater than 15, which is always false. see the answer above for testing if a variable is in some range.

+1

Yeah that's not how '<' and '>' work! If you want to check whether x is both larger than 10 and smaller than 15, you need to use if(x > 10 && x < 15) or if(x > 10){ if(x < 15){ ... instead.

0

SAGY Zino you are right