C语言中continue的用法,此程序的目的是把100到200之间的不能被3整除的数输出

#include<stdio.h>
void main()
{
int n;
for(n=100;n<=200;n++)
{if(n%3==0)
continue;
printf("%d\n ",n);
}
}
为什么是if(n%3==0)啊,谁能解释一下吗

if(n%3==0)
continue;
这两句的意思就是,如果数n求余3的值等于0,也就是说n可以被3整除的话,就continue,continue的意思就是本次循环不向下面执行,但是也不跳出循环,而是进入下一次for循环。
举例n = 102的时候,求余3等于0,然后不执行printf函数,会去进行n++,然后n=103,判断《=200,在到if里,就是这样。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-10-26
n%3 就是n对3取模,就是n除以3的余数。
如果 n%3==0 ,就是说n除以3的余数是0,就是刚好被3整除的意思。
程序中if(n%3==0) continue,就是说当n除以3的余数是0的时候执行continue指令,continue指令就是不要执行下面的语句,直接进入下一个循环操作。追问

下一个循环是哪个循环啊,能解释一下吗

追答

比如当前循环 n=100,下一个循环就是n=101

第2个回答  2014-10-26
continue 在C语言当中主要用于循环结构,表示跳过当前的一次循环,进入下一次循环。
对于这个程序来说,当n对3取余等于0时候,表示这个数能整除3,所以这个数是不用输出的,就用continue跳过这次循环,进入下一个循环。 不懂可继续追问。追问

下一个循环是哪个循环啊

进入下一个循环是哪个循环啊

追答

这个就要举例子说明了。比如n=102的时:
首先判断n对3取余,n对3取余的意思就是用n除以3,然后求除的余数是几。当n是102的时候,n对3取余数的结果是0(这个应该会算吧?)
然后通过if判断n对3取余等于0,执行continue,直接跳过本次循环,意思就是continue后面的语句都不执行,直接执行n++。
最后,程序跳过当前循环(n=102),直接进入了下一次循环(n=103)。

望采纳啊

第3个回答  2014-10-26
%是取余运算符,就是取n除以a的余数,而且只能用于整数。
比如,n=10 a=3 ,10÷3=3...1,b就等于余数1。
所以如果能被3整除,n%3(即除以3后的余数)自然为0。追问

这个我知道啊,那除3余零不是不是能被3整除吗

追答

抱歉,没看清问题。因为后面一句是continue,意思是结束本次循环,进行下一次。如果能整除,就不会执行到printf语句,只有不能整除才会跳过continue,执行printf。

写成这样就更清楚了:

if(n%3==0)
{
    continue;
}
else
    printf("%d\n ",n);

相似回答