【发布时间】:2022-01-10 16:43:32
【问题描述】:
所以我做了下一个练习,只使用while 循环:
编写一个程序,提示用户输入两个整数。 打印这两个整数指定范围内的每个数字。
代码如下:
#include <iostream>
int main()
{
std::cout << "Write two numbers: " << std::endl;
int v1 = 0, v2 = 0;
std::cin >> v1 >> v2;
std::cout << "The numbers between " << v1 << " and " << v2 << " are: " << std::endl;
while (v2 < v1 && ++v2 < v1)
{
std::cout << v2 << std::endl;
}
while (v1 < v2 && ++v1 < v2)
{
std::cout << v1 << std::endl;
}
}
现在我必须使用 for 循环来完成,我这样做了:
#include <iostream>
int main()
{
std::cout << "Write two numbers: " << std::endl;
int a, b;
std::cin >> a >> b;
std::cout << "The numbers between " << a << " and " << b << " are: " << std::endl;
for (; a < b && ++a < b; a)
{
std::cout << a << std::endl;
}
for (; b < a && ++b < a; b)
{
std::cout << b << std::endl;
}
}
看起来几乎一样,但确实有效。
我的问题是:我错过了有关 for 循环的一些内容,我可以做得更简单吗?
PD:只是for循环,我还没在If章节,我想一步一步去“C++ Primer 5th edition”。
【问题讨论】:
-
问题不清楚。有什么问题?
-
没有问题,只是问是否有一种方法可以让 for 循环更简单,我问这个是因为 while 和 for 看起来非常相似。
-
for 循环中的第三个表达式为 for (; a
-
for (; a < b && ++a < b; a)这是一个很奇怪的模式,也许你更想要这个:for (; a < b; a++)? -
for循环的所有三个部分都是可选的,因此如果您不需要“增量”部分,您可以像初始化部分一样跳过它,例如for (; a < b && ++a < b; )
标签: c++ for-loop while-loop