C ++如何增加For循环增量

时间:2015-02-14 19:32:38

标签: c++ for-loop increment

我想每次增加1。我希望能够获得1,3,6,10,15,21,28,36,46 ......

首先它增加1然后增加2然后增加3然后增加4,依此类推第四。

5 个答案:

答案 0 :(得分:3)

您可以使用变量来递增计数器

for(int counter = 0, increment = 0; counter < 100; increment++, counter += increment){
   ...do_something...
}

答案 1 :(得分:1)

你可以试试这个:

int value=0;
for(int i=1;i<limit;i++){
    value+=i;
    System.out.println(value);
}

答案 2 :(得分:0)

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

等...

答案 3 :(得分:0)

我假设您希望使用数字45而不是46。因此,我想我们可以为此使用for循环。

int x = 0; 
int y = 1;

for(int i = 0; i <= 9; i++)
{
    x += y;
    cout << x << ", ";
    y++;
}

我停在9点,因为那是您前面用完的最后一个数字。显然,我们可以继续更长的时间。

答案 4 :(得分:0)

您的问题提供了一个序列,但假设不正确。

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是某种表达式,只要要执行循环的主体,该表达式就必须为真。

可以说,这实际上是正确的,也许46是您永远不想错过的数组的结尾。 或8是您要停止加一并开始加2的增量,则应相应地设计condition。实际上,如果需要在执行主体循环之前完成condition内的递增操作! for()表达式中的逗号是序列运算符,并且允许三元运算符(Function call, comma and conditional operators)。请注意,for()循环的第一个“参数”不是表达式,而是语句,并且逗号的含义取决于语句的性质。在这种情况下,它是两个变量的声明。

在此阶段,当for()变得过于复杂时,出于可读性考虑,应该考虑使用whiledo 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 ) 
{
}