0

我正在尝试创建一个循环,每次 if 语句为真时将 1 添加到 int 变量

但是在测试代码时,即使 if 语句为真,变量也不会增加,就好像 my for 循环根本没有增加一样......

代码示例:

int left_jab_count;
if(area >=100000 && area1 <100000)
{
    cout<<"LEFT JAB HAS BEEN THROWN"" "<<area<<endl;

    for(int left_jab_count = 0; left_jab_count < 0 ;++left_jab_count)
    {
        cout<<"Left Jab :"<<left_jab_count<<endl;
    }
}

谁能看到这里哪里出错了?

4

3 回答 3

7
 for(int left_jab_count = 0; left_jab_count < 0 ;++left_jab_count)
                                        //^^^^left_jab_count is never < 0
                                        // change <0 to some value larger than 0

for循环永远不会执行。因此,left_jab_count永远不会增加,你永远不会进入for循环体。

与此同时,你宣布left_jab_count了两次。

于 2013-04-18T00:18:30.917 回答
2

tacp 已经充分涵盖了您当前代码的问题,所以我不会讨论这些问题。根据您的规范,“我正在尝试创建一个循环,每次 if 语句为真时将 1 添加到 int 变量”,您想要的是这样的:

int left_jab_count = 0; // Don't forget to initialise this

while (true) // Replace with real loop
{
    // Do NOT initialise left_jab_count here, otherwise it will be
    // reset to 0 on every loop

    // Insert code which changes area and area1

    if (area >= 100000 && area1 < 100000)
    {
        cout << "LEFT JAB HAS BEEN THROWN " << area << endl;
        left_jab_count++;
    }
}

除非您错误地说明了您的规范,否则您不需要在块for内使用循环。if

于 2013-04-18T00:25:16.030 回答
0

JBentley 回答了您提出的问题。在他发布的 While 语句中,您应该添加一个为 true 的条件,以便里面的代码可以运行。我猜你想输入:

while (left_jab_count < NUMBER)

确保条件为真,以便循环可以启动并运行 if 语句。

于 2013-04-18T01:16:07.570 回答