我正在按照本网站推荐的方法阅读《C++ Primer第5版》。我正在学习for循环和while循环,得出结论它们几乎相同。至少这是我所了解到的。我认为有人最好地解释了:“当您知道要循环多少次时,请使用for循环;当您想要循环直到满足条件时,请使用while循环。”但实质上,编译器不区分两者,并且可以互换使用。
该书提供了以下代码(甚至没有按照他们所解释的那样工作):
附加的练习要求“编写自己版本的程序,从cin读取一组整数并打印它们的总和”。我假设他们希望我使用for循环。所以我尝试了这样做,但是我遇到了困难。
书中说,“for循环由initstatement、condition和expression组成。在while循环中,“std::cin>>value”是我的condition,而没有expression。那么如果我只有一个initstatement和一个condition,我该如何使用for循环呢?”
该书提供了以下代码(甚至没有按照他们所解释的那样工作):
<iostream>
int main()
{
int sum = 0, value = 0;
// read until end-of-file, calculating a running total of all values read
while (std::cin >> value) {
sum += value; // equivalent to sum = sum + value
std::cout << "Sum is: " << sum << std::endl;
return 0;
}
}
附加的练习要求“编写自己版本的程序,从cin读取一组整数并打印它们的总和”。我假设他们希望我使用for循环。所以我尝试了这样做,但是我遇到了困难。
书中说,“for循环由initstatement、condition和expression组成。在while循环中,“std::cin>>value”是我的condition,而没有expression。那么如果我只有一个initstatement和一个condition,我该如何使用for循环呢?”
#include <iostream>
int main()
{
int sum = 0;
for (int value = 0; std::cin >> value; "EXPRESSION GOES HERE")
sum += value;
std::cout << "The sum is: " << sum << std::endl;
return system("pause");
}
for
表达式的任何部分都可以为空。 - Some programmer dudefor(T *p = head; p; p=p->next) ...
迭代链表--我们不知道计数的数量,只知道到达零时结束。将数字分解为其数字可以使用for(int x = n; x; x /= 10) ...
完成,等等。 - Mats Peterssonreturn 0;
在while循环内部。带有明显错误的示例?不太好。 - Jongware