IF-nesting in c++
IF-nesting in c++
>heyall,只是为我的 C++ 入门课程浏览了一些教科书示例,如果有人能澄清为什么以下代码产生 51 的输出(我希望它不会产生任何输出(,非常感谢!
#include <iostream>
using namespace std;
int main()
{
constexpr int a{9};
constexpr int b{1};
constexpr int c{5};
if (a < b < c)
if (c > b > a)
if (a > c) cout << 91;
else cout << 19;
else
if (b < c) cout << 51;
else cout << 15;
else
if (b < a < c)
if (a < c) cout << 95;
else cout << 59;
else
if (b < c) cout << 57;
else cout << 75;
return 0;
}
似乎你期待这个表达式:
if (a < b < c)
如果a
、b
和c
的顺序递增,则true
。但实际发生的是表达式变成:
if ((a < b) < c)
这是:
if (0 < c)
// or
if (1 < c)
无论哪种方式,这可能都不是您想要的。事实上,没有充分的理由来写上面的表达式。
如果你想检查变量是否在增加,你需要写这样的东西:
if (a < b && b < c)
在 c++ 中,像 'X<=Y<=Z' 这样的比较没有括号就没有数学意义。所以,在
if (a < b < c)
我们得到了
a < b => 9 < 1 => 0
">0"表示条件为假,其中"c"返回
0 < 5 => 1
返回"1"表示 if 条件为 True。
同样,您可以检查嵌套的 if-else 循环。
相关文章:
- netcat command in c++
- Difference in displaying cv2 Mat
- C++ MFC Libraries in Travis CI
- 如何在OpenSSL中从configuration.h.in获取configuration.h
- 创建具有 new in 函数和"this is nullptr"异常的对象
- IN, OUT, INOUT Parameters
- 应用程序崩溃并显示"symbol _ZdlPvm, version Qt_5 not defined in file libQt5Core.so.5 with link time reference"
- 有人安装"IITB Simplecpp in mac"吗?
- 从 C 样式字符串中删除子字符串 "in place" 在C++代码中
- 如何修复"error: ‘_1’ was not declared in this scope"?
- Softmax Implementation in C++
- 将 out/in out 参数与 if/switch 的 init 语句一起使用
- IF-nesting in c++
- Gurobi GRBModel and GRBmodel in C++
- Tensorflow Hub in C++
- Centos7 g++ "to_string is not in a member of std"
- InitializeCriticalSectionEx Not Located In KERNEL32.Dll
- 将 lambda 表达式传递给 std::function in C++
- @CPPFLAGS@在 Makefile.in 中意味着什么?
- std::async from std::async in windows xp