C++如何增加循环增量
C++ How do I increase For Loop Increments
我想每次将增量增加1。我想得到1,3,6,10,15,21,28,36,46…
首先,它加1,然后加2,然后加3,然后加4,以此类推,最后加第四。
您可以使用一个变量来增加计数器
for(int counter = 0, increment = 0; counter < 100; increment++, counter += increment){
...do_something...
}
int incrementer = 1;
for ( int i = 1; i < someLength; i += incrementer )
{
cout << i << endl;
++incrementer;
}
或者如果你想在尽可能少的行中完成(但可读性较差):
for ( int i = 1, inc = 1; i < 100; ++inc, i += inc )
cout << i << endl;
输出:
1
3
6
10
等等。。。
你可以试试这个:
int value=0;
for(int i=1;i<limit;i++){
value+=i;
System.out.println(value);
}
我假设您想要的是数字45而不是46。因此,我认为我们可以使用for循环来处理这个问题。
int x = 0;
int y = 1;
for(int i = 0; i <= 9; i++)
{
x += y;
cout << x << ", ";
y++;
}
我在9停了下来,因为这是你前面最后一个数字。显然,我们可以走得更远。
您的问题提供了一个序列,但不正确的hyposesis。
1、3、6、10、15、21、28、36、46——此处的增量为2、3、4、5、6、7、8、10。10?最后一个值应该等于45吗?
一般情况下,循环看起来像:
const unsigned begin_count = 1;
const unsigned begin_increment = 2;
for(unsigned count = begin_count, incr = begin_increment; condition; count += incr, ++incr)
{
}
其中condition
是某种表达式,只要要执行循环的主体,它就必须为true。
比方说,这实际上是对的,也许46是你永远不想错过的数组的末尾。或者8是要停止加1并开始加2的增量,那么condition
应该相应地设计。如果需要在执行body循环之前进行增量,那么实际上可以在condition
内部进行增量!for()
表达式中的逗号是序列运算符,允许使用三元运算符(函数调用、逗号和条件运算符)。注意,for()循环的第一个"参数"不是表达式,而是一个语句,逗号的含义取决于语句的性质。在这种特殊情况下,它是两个变量的声明。
在for()变得过于复杂的那个阶段,为了可读性,应该考虑使用while
或do while
循环。
constexpr unsigned begin_count = 1;
constexpr unsigned begin_increment = 2;
constexpr unsigned end_count = 46; // 45 + 1
for(unsigned count = begin_count, incr = begin_increment;
count < end_count;
count += incr, ++incr )
{
}
相关文章:
- 为什么"i"在循环的每次迭代中都没有增加?(C++)
- 为什么这个 x 值在这个循环映射中没有增加?C++
- 如何并行化增加循环的大小
- 用于增加 ASCII 值的循环
- C++:进入循环后增加新行
- 在for循环中增加结构值每次返回相同的值
- 如何实现循环以增加数据
- 如何增加几个月循环.然后显示
- 无法在循环中的if statement结束时增加
- 循环的C 增加了双点
- 循环增加不起作用
- 我的值不断增加,而不是在循环语句中重置
- 在循环中增加ASIO问题
- 试图将字符串元素与循环和索引进行比较,但索引不会增加
- 增加OpenMP中用于进度报告的共享循环计数器
- 当使用动态数组时,循环中的内存使用量不断增加.(C++)
- C++如何增加循环增量
- 创建一个增加 1 的 while 循环
- 增加 for 循环中矢量的大小
- 为什么更改循环迭代顺序会增加运行时间