注意:本随笔是直接参考《C++Primer(第四版)习题解答(完整版)》中的。此处主要是便于本人以后反复阅读。
习题1.14
如果输入值相等,本节展示的程序将产生什么问题?
1 #include <iostream> 2 using namespace std; 3 4 int main() 5 { 6 cout << "Enter two values:" << endl; 7 int val1, val2; 8 int lower, upper; 9 int sum = 0; 10 cin >> val1 >> val2; 11 if (val1<=val2) 12 { 13 lower = val1; 14 upper = val2; 15 } 16 else 17 { 18 lower = val2; 19 upper = val1; 20 } 21 22 for (int val1 = lower; val1 <= upper;++val1) 23 { 24 sum += val1; 25 } 26 cout << "The sum of " << lower << "to " << upper << "inclusive is " << sum << endl; 27 return 0; 28 }
【解答】
sum 的值即为输入的值。因为输入的Val1和val2值相等(假设为4),所以lower和upper相等,均为4。for循环中的循环变量val1初始化为lower,从而val1<=upper为真,循环体执行一次,sum的值为Val1(即输入值4):然后val1加1,val1的值就大于upper,循环执行结束。