【发布时间】:2013-12-25 13:43:12
【问题描述】:
我正在学习 C++ 和 java,我注意到如果你有条件,那么如果条件为真,后面的任何代码都将被执行,即使你没有明确写 == true
考虑以下非常简单的 C++ 代码:
bool c_plus_plus_is_cool(){
return true;
}
int main(){
if (c_plus_plus_is_cool()) {
cout << "C++ is cool!";
}
return 0;
}
问:有什么区别
if (c_plus_plus_is_cool())
和if (c_plus_plus_is_cool() == true)?
在其他语言中也是如此吗(比如 Java(我一直在写 ==true...))?
【问题讨论】:
-
尽管问题不在于这个,但 C++ 有一个非常有趣的“布尔上下文”(通常是“上下文转换”)概念,它允许使用各种很好的方式来编写
if语句. -
没有意义,相信这是一个自我防卫的习惯,因为许多 C 新手一直忘记 if (0) 做了什么......
-
这个问题的答案在 C++ 和 Java 中非常不同。尤其是如果您考虑到常见警告以及
c_PLUS_PLUS_IS_cool()返回除bool之外的其他内容的可能性,这在if所在的位置远非显而易见。
标签: java c++ conditional