下面C++中 if(a[i]==0) continue; 有什么用啊,急死了,想不通,求大神

2024-11-09 06:19:52
推荐回答(5个)
回答(1):

continue其作用是:结束本次循环,即跳过循环体下面尚未执行的语句,接着进行下一次是否执行循环的判断(就是执行到continue时,立即结束本次循环,重新去判断循环条件是否为真)。

回答(2):

在a[0]~a[99]初始化为a[0]=0,a[1]=2,a[2]=3 、、、a[99]=100后,你的判断是对的,但紧接着开始素数判断时,你的结论就错了。
素数的定义是一旦一个数可以被1和它本身以外数整除,该数即为素数,而该程序的素数判断模型是这样的,从2至100共99个数,依次作为除数去除2~100,一旦可以整除,即将被除数置为0,排除该数为素数,例如:
以2为除数的循环后,2、4、6、8 、、、100所在的a数组元素被置为0;
以3为除数的循环后,3、(6)、9、(12)、15 、、、99所在的a数组元素被置为0;
、、、
最后,将经过上述处理后保持非0的数字,即为素数。
注意到没有,括号中的被除数(6,12,、、、)在前面的处理中已被置为0了,也就是说代表数字6的a[5]=0、代表数字12的a[11]=0,由于这些数含其它数作为乘积因子,因此没有必要在后续处理中再将这些数作为除数去测试其它数了。这里就用到了“ if(a[i]==0) continue; ”,作用有两点:
1、 跳开不必要的后续判断;
2、0 不能作为除数;
懂了没有?

回答(3):

for(j=i+1;j这句的缘故。
如果a[j]被a[i]整除,就把a[j]置为0。
而a[j]是遍历整个数组的。如果被置为0,即判定不是素数。所以
if(a[i]==0) continue;
如果为零,跳过此次判断,执行下一次。
********************************************
这是嵌套循环,可能你是因为这个,所以比较难看懂。
多理解一下逻辑

回答(4):

continue;的作用是结束本次循环,即跳过循环体中下面的未执行的语句,接着进行下一次是否执行循环的判断。

回答(5):

if(a[i]==0) continue,属于判定,就是如果a[i]的值等于零,继续执行下一条指令