【问题标题】:Finding the last value of a sequence before a termination value C++在终止值C ++之前查找序列的最后一个值
【发布时间】:2016-05-18 22:49:25
【问题描述】:

在这个循环中,x 增加了太多次。

int x = 0;
while (x < 10)
{
    x = x + 3;
}
cout << x;

这个输出是 12,而我希望它是 9。一般来说,在给定约束(在本例中为 10)的情况下,我将如何找到序列的最后一个值(在本例中为 9)。

【问题讨论】:

  • 可能在生成下一个值之前保存每个值,然后当/如果下一个违反约束时,使用存储的值?

标签: c++ loops increment


【解决方案1】:

例如:

    int last = 0;
    for (int x = 0; x < 10; x+=3)
    {
        last = x;
    }
    cout << last;

或:

int x = 0;
while (x < 10)
{
    x = x + 3;
}
cout << x - 3;

或:

int x = 0;
int last = 0;
while (x < 10)
{
    last = x;
    x = x + 3;
}
cout << last;

或:

int x = 0;
while (x + 3 < 10)
{
    x = x + 3;
}
cout << x;

【讨论】:

    【解决方案2】:

    使用您的代码,您可以尝试:

    int x = 0;
    while (x+3 < 10)
    {
        x = x + 3;
    }
    cout << x;
    

    【讨论】:

      【解决方案3】:

      如果您想查看最后一个值,最好将其减少与增加它相同的量。

      int x = 0;
      while (x + 3 < 10)
      {
      x = x + 3;
      }
      x = x -3;
      

      另一种方法是在循环内使用 break 语句,并带有您想要离开的合适条件。

      【讨论】:

        猜你喜欢
        • 2016-02-09
        • 1970-01-01
        • 2023-02-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-09-27
        相关资源
        最近更新 更多