C 当我在嵌套for循环中包含括号时,它不会';它不能正常工作,但当我把它们拿出来时,它能正常工作;为什么会这样?
当我编写这个程序来打印素数时,它在嵌套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
#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;