Q
双重比较
0
A
回答
9
是的,你可以做到这一点,但它不会是你所期望的。它解析为
if ((4<5) < 6)
这将产生
if (1 < 6)
因为4<5
计算为true
被晋升为1
,其收益率,显然,真实的。
你需要
if ((4<5) && (5<6))
而且,是的,你可以做
a = 1+2<3+4<5>6;
但也被分析为
a = ((1+2)<((3+4)<5))>6;
将评估为false
因为(1+2)<((3+4)<5)
产生一个布尔值,它总是小于6.
2
这可能是笨拙的,但是这将工作:
int i, j, k;
i = 4; j = 5; k = 6;
if ((i < j) && (j < k))
{
cout << "Valid!" << endl;
}
4
它编译但不会做你所期望的 -
if(4 < 5 < 2)
一样
if((4 < 5) < 2)
一样
if((1 < 2)) //1 obtained from cast to boolean
这当然是真实的,尽管我想你会期待一些完全不同的东西。
相关问题
- 1. Xcode - 双重比较
- 2. Java双重比较
- 3. 比较向量的双重
- 4. 双重BigDecimal,比较两个
- 5. 凡在这双重比较
- 6. xunit.net - 双[,]比较
- 7. matlab双比较
- 8. SQL双比较
- 9. 浮动和双重比较如何?
- 10. 令人惊讶的双重比较
- 11. C浮点数和双重比较
- 12. FindBugs:双重引用的可疑比较
- 13. 缩写Python中的双重比较
- 14. C++双重比较的奇怪行为
- 15. 双比较问题
- 16. Java双NaN比较
- 17. 双比较本身
- 18. AssertJ比较双值
- 19. 比较双和int
- 20. 爪哇 - 双比较
- 21. C++比较双数
- 22. 双比较失败
- 23. JavaScript中的双重或三重(甚至多重)比较
- 24. 比较双打地图
- 25. 双比较 - 数字界线
- 26. 比较C++中的双打
- 27. 比较两个双打号
- 28. 双精度比较失败
- 29. 比较楼层/小区后的浮点数/双精度比较
- 30. Java 8:比较器比较双类型不匹配
不,不这样做。但是用'g ++ Wall -g'编译(即所有的警告和调试信息),编译器会警告你。 –