c - 下面的控制表达式是否在 for 循环中递增?

标签 c for-loop

<分区>

在下面的代码中,在最内层循环中,当d < p 为true且p % d == 0 为false时, 变量 d 是递增还是递增被跳过?

// Program to generate a table of prime numbers

#include <stdio.h>

int main (void)
{
    int p, d;
    _Bool isPrime;

    for ( p = 2; p <= 50; ++p ) {
        isPrime = 1;

        for ( d = 2; d < p; ++d )
            if ( p % d == 0 )
                isPrime = 0;

            if ( isPrime != 0 )
                printf ("%i  ", p);
    }
    printf ("\n");
    return 0;
}

最佳答案

在调试器下单步调试 :)

从代码中可以看出,“d”仅在“for”循环中递增。

您将在调试器下看到 d >= p 时刻,然后“++d”没有被执行。

附言: 我重新格式化了您的代码以使缩进反射(reflect)实际逻辑:

int main (void)
{
    int p, d;
    _Bool isPrime;

    for ( p = 2; p <= 50; ++p ) {
        isPrime = 1;

        for ( d = 2; d < p; ++d )
            if ( p % d == 0 )
                isPrime = 0;

        if ( isPrime != 0 )
            printf ("%i  ", p);
    }
    printf ("\n");
    return 0;
}

关于c - 下面的控制表达式是否在 for 循环中递增?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8706527/

相关文章:

c - 将一维固定数组传递给二维指针函数

c - 将 C bmp 读入内存时出现问题

c - 告诉客户端何时完成写入缓冲区

c++ - 在基于范围的 for 循环中使用转发引用有什么好处?

javascript - 无法迭代 JavaScript 对象

c - 从C中的文件读取时无限循环

C:For循环变量作为它自己的停止条件?

for-loop - 我如何改进代码?

python - 段落的标题大小写

c++ - 等效的 gcc 程序集?