Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 当我在嵌套for循环中包含括号时,它不会';它不能正常工作,但当我把它们拿出来时,它能正常工作;为什么会这样?_C_For Loop_Nested Loops - Fatal编程技术网

C 当我在嵌套for循环中包含括号时,它不会';它不能正常工作,但当我把它们拿出来时,它能正常工作;为什么会这样?

C 当我在嵌套for循环中包含括号时,它不会';它不能正常工作,但当我把它们拿出来时,它能正常工作;为什么会这样?,c,for-loop,nested-loops,C,For Loop,Nested Loops,当我编写这个程序来打印素数时,它在嵌套for循环中没有括号的情况下工作正常: #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) i

当我编写这个程序来打印素数时,它在嵌套for循环中没有括号的情况下工作正常:

#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;
}
#包括
内部主(空)
{
int p,d;
_Bool-isPrime;

对于(p=2;p因为括号将包括迭代中的打印语句,因此在检查时将打印数字。
9%2==0
为假,
9%3==0
为真,所以
9
只打印一次。

谢谢MikeCAT。循环迭代时,它不包括这些语句,因为它们都是真的吗循环开始后缩进?@rayzor No.C是自由格式语言,因此缩进对编译器来说毫无意义。好吧,这是有意义的。所以当我在外循环周围放括号时,它会遍历其中的所有内容,即使其中包含另一个循环?除非嵌套循环有括号?对于
来说,
的效果是一种状态在(…)
之后进行缩进。使用
{}
,您可以从多个语句中生成一个语句(复合语句)。这现在是非常有意义的。我的困惑开始于认为缩进起了作用。谢谢。
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;