假设您想制作一个程序,一遍又一遍地打印数字 1-9
123456789123456789123456789
我想最明显的方法是使用循环
int number = 1;
while(true)
{
print(number);
number = number + 1;
if(number > 9)
number = 1;
}
在我走得更远之前,这是最好的方法还是有更常见的方法?
假设您想制作一个程序,一遍又一遍地打印数字 1-9
123456789123456789123456789
我想最明显的方法是使用循环
int number = 1;
while(true)
{
print(number);
number = number + 1;
if(number > 9)
number = 1;
}
在我走得更远之前,这是最好的方法还是有更常见的方法?
这会吗?
while(true)
{
print("123456789");
}
最明显的方法是:
for (;;)
{
for (int i = 1; i < 10; ++i)
{
print(i);
}
}
为什么你想优化它超出了我的范围。输出将使计算不堪重负,以至于任何类型的优化都无关紧要。
首先,你为什么要“优化”这个?你在优化速度吗?空间?可读性还是可维护性?
一个“更短”的方法是这样的:
for (int i = 1; true; i++)
{
print(i);
i = (i + 1) % 10;
}
我所做的只是:
这确实是一个微优化的案例。
我的回答基于 Mike 的回答,但经过进一步优化:
for (int i = 1; true; i++)
{
std::cout << ('0' + i);
i = (i + 1) % 10;
}
打印一个数字比打印一个字符和加法更广泛。
到目前为止,使用运算符的每个人%
似乎都认为涉及十个值。他们也忽略了他们的逻辑有时会产生的事实0
。做你想做的一种方法是:
int i = 1;
while (true) {
print(i);
i = (i % 9) + 1;
}