防止在C ++中使用减量/增量后缀运算符时的风险吗?

| 最近,我发现使用st这样的风险:
int i = 10;
int sum = 0;
while ( i-- ){
      sum = sum + i;
它实际上得到的总和= 9 + 8 + 7 + .. +1。因此,总共不足10。但是我更喜欢这种编码方式,它既快速又专业。有什么建议可以避免这种风险,并且仍然具有简洁的代码?     
已邀请:
您有一个计数器,一个停止条件和一个减量运算,因此请使用
for
循环-比
while
更适合:
int sum = 0;
for (int i = 10; i > 0; --i) {
    sum += i;
}
\“专业\”,简洁无风险:) 编辑:或者,如果您想非常简洁:
int sum = 55;
    
至少对于这种特定类型的系列(来自1..N的和),您只能做
N*(N+1)/2
。 10 * 11/2 = 55。     
后缀增加/减少可能非常讨厌。我建议不要使用它。您的示例甚至不是最糟糕的。它的表现还不错:您实际上得到的总和= 9 + 8 + 7 + ... + 1 + 0;因此,您正在循环十次,就像人们想的那样。 如注释中所述,使用for循环。
int sum=0;
for (int i=10;i;--i) sum+=i;
前缀运算符不那么容易混淆,并且在某些情况下,可以使代码更快。     
使用do-while而不是while。     
不知道您所说的“风险”和“专业”编码方式是什么,此代码是错误的。如果您希望它看起来与您写的“相似”
int i = 10;
int sum = i;
while ( i-- ){
      sum = sum + i;
要么
int i = 10;
int sum = 0;
do {
    sum += i;
} while (--i);
    

要回复问题请先登录注册