为什么这个程序没有输出?

Rus*_*Rai -2 c for-loop if-statement continue break

我有一个程序由于其中的for循环而无法正常工作.我在这里粘贴了一段代码:

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int numLoop = 19;
    int counter;
    int maxloops = 25;
    int takenNum1 = 9, takenNum2 = 14, takenNum3 = 17, takenNum4 = 21, takenNum5 = 24;

    for (counter=1; counter==maxloops; counter++)
    {
        printf("%d \n", counter);

        if (counter == numLoop)
        {
            break;
        }

        if (counter == takenNum1 || counter == takenNum2 || counter == takenNum3 || counter == takenNum4 || counter == takenNum5)
        {
            counter++;
            continue;
        }
    }

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

预期的产出是: 1 2 3 4 5 6 7 8 10 11 12 13 15 16 18 19

什么都没打印出来.

Sou*_*osh 6

for循环条件出现马车.你想写counter != maxloops而不是counter==maxloops.

否则,不满足循环条件,并且根本不执行循环体.

那说,根据你的要求,

  1. 你需要移动检查块

    if (counter == takenNum1 || counter == takenNum2 || counter == takenNum3 || counter == takenNum4 || counter == takenNum5)
    {
        counter++;
        continue;
    }
    
    Run Code Online (Sandbox Code Playgroud)

    printf()声明之前,以避免无条件打印.

  2. for循环条件应该真正的样子

    for (counter=1; counter < numloop; counter++)
                             ^^^^^^^^^^
    
    Run Code Online (Sandbox Code Playgroud)

    因为您希望输出限制为19.

  • @MythicCocoa在这种情况下,您需要创建一个MCVE. (2认同)