只在for循环完成后打印一行(C ++)

时间:2016-03-15 16:05:07

标签: c++ loops

因此,在完成for循环后,我无法弄清楚如何使这段代码完成消息。每次循环后我都会继续这样做。我有多个for循环检查函数是否正在增加/减少/不减少/不增加。我只会发布增加的一个,因为他们都有同样的问题。

我试过这种方式:

for(i=0; i<n; i++)
    {
            if(val[i] < val[i+1])
            {
                 cout << "Function is increasing!" << endl;
            }

    }

使用计数器,但我很确定我使用了反错误。

2 个答案:

答案 0 :(得分:2)

使用简单的状态机:检查所有点是否验证了您的状况。如果他们这样做,打印一些东西。

bool increasing = true;
for (i=0 ; i<n ; i++)
{
    increasing &= val[i] < val[i+1];
}
if (increasing)
{
    std::cout << "Function is increasing!\n";
}

答案 1 :(得分:1)

你可以创建一个变量来保存函数的状态:

enum State {
Increasing,
Decreasing,
NonDecreasing,
NonIncreasing
} state;

并在循环中正确设置

for(i=0; i<n; i++)
{
        if(val[i] < val[i+1])
        {
             state = State::Increasing;
        }

}

switch(state) {
  case Increasing:
    std::cerr << "Increasing" << std::endl;
    break;
  case Decreasing:
    ...
}