假设你想制作一个会反复打印数字1-9的程序
123456789123456789123456789
我想最明显的方法是使用循环
int number = 1;
while(true)
{
print(number);
number = number + 1;
if(number > 9)
number = 1;
}
在我继续前进之前,这是最好的方法吗?或者有更常见的方法吗?
答案 0 :(得分:8)
这会吗?
while(true)
{
print("123456789");
}
答案 1 :(得分:1)
首先,你为什么试图“优化”这个?你在优化速度吗?空间?可读性或可维护性?
“更短”的方式就是这样:
for (int i = 1; true; i++)
{
print(i);
i = (i + 1) % 10;
}
我所做的只是:
这确实是微优化的一个例子。
答案 2 :(得分:1)
我的回答是基于迈克的答案,但进一步优化:
for (int i = 1; true; i++)
{
std::cout << ('0' + i);
i = (i + 1) % 10;
}
打印数字比打印字符和添加更加广泛。
答案 3 :(得分:1)
最明显的方式是:
for (;;)
{
for (int i = 1; i < 10; ++i)
{
print(i);
}
}
为什么你想要改变它是超出我的。输出将压倒计算,任何类型的优化都无关紧要。
答案 4 :(得分:1)
到目前为止,使用%
运算符的每个人似乎都认为涉及十个值。他们还忽略了这样一个事实:他们的逻辑有时会产生0
。做你想做的事的一种方法是:
int i = 1;
while (true) {
print(i);
i = (i % 9) + 1;
}