C编程中的嵌套循环
Nested Loops in C programming
我想知道如何解释下面代码中的行 "if(!(i%j)) break;"。自从“!”符号是一个反相器,这是否意味着下面代码中的粗线会解释为 "if i mod j is equal to zero, invert and then break out of the loop"
非常感谢
int main ()
{
/* local variable definition */
int i, j;
for (i = 2; i < 100; i++) {
for (j = 2; j <= (i / j); j++)
if (!(i % j))
break;
if (j > (i / j)) printf("%d is prime\n", i);
}
return 0;
}
在 C 语言中,if (number)
的计算结果总是为真,除非数字为 0。因此,计算结果为:如果 i mod j 等于 0,基本上,如果 i 是j 的倍数。
"if i mod j is equal to zero, invert and then break out of the loop"
关闭:如果 i mod j 等于 0 则 break.
if ( ! (i % j) ) break;
在 C 中,0
为假,其他均为真。因此,当 i % j
为 0
时,! (i % j)
为 1
,因此为真。
我想知道如何解释下面代码中的行 "if(!(i%j)) break;"。自从“!”符号是一个反相器,这是否意味着下面代码中的粗线会解释为 "if i mod j is equal to zero, invert and then break out of the loop"
非常感谢
int main ()
{
/* local variable definition */
int i, j;
for (i = 2; i < 100; i++) {
for (j = 2; j <= (i / j); j++)
if (!(i % j))
break;
if (j > (i / j)) printf("%d is prime\n", i);
}
return 0;
}
在 C 语言中,if (number)
的计算结果总是为真,除非数字为 0。因此,计算结果为:如果 i mod j 等于 0,基本上,如果 i 是j 的倍数。
"if i mod j is equal to zero, invert and then break out of the loop"
关闭:如果 i mod j 等于 0 则 break.
if ( ! (i % j) ) break;
在 C 中,0
为假,其他均为真。因此,当 i % j
为 0
时,! (i % j)
为 1
,因此为真。