我们看下面一段代码
#include <iostream>
using namespace std;
int main() {
int a(1), b(3), c(2);
while (a < b < c) {
++a;
--b;
--c;
}
cout << a << "," << b << "," << c << endl;
}
可以先看一下输出是多少。
然后我们写同样的python版本的,看看输出是多少。
a = 1
b = 3
c = 2
while a < b < c:
a += 1
b -= 1
c -= 1
print(a, b, c)
c++的输出是3,1,0
python的输出是 1,3,2
原因是C++中的比较运算符拥有相同的优先级,而且是从左往右计算,那么
a < b 也就是1 < 3是成立的,会返回 1,现在就是 1 与 c进行比较,1 < 2也是成立的,依次往下就会得到3,1,0这个答案。
在python中,a < b < c是 a < b and b < c 这样进行计算的,其中 b < c 是不成立的,所以while语句不会被执行,那么直接返回初始的值。
评论(0)
您还未登录,请登录后发表或查看评论