n=val(thisform.text1.value)
a= "是素数 "
for i=2 to n-1
if mod(n,i)=0
a= "不是素数 "
exit
endif
endfor
thisform.label2.caption=a
此程序中if mod(n,i)为假时,程序是怎么执行的?他的执行顺序是什么
是执行endfor,还是执行exit?
------解决方案--------------------------------------------------------
此程序中if mod(n,i)为假时,当然是执行endif之后的了,也就是会遇到endfor了,这样就会继续回到for处,继续下一次循环.
此程序是这样的:如果for循环中的exit被执行,循环被强行中断,则意味着mod(n,i)=0 成立,那么n会被1和它本身以外的数整除,则n不可能是素数,此时a= "不是素数 " ;如果for循环能自行退出,那么就意味着mod(n,i)=0 一直不成立,那当然就说明n不能被1和它本身以外的数整除了,则n就是素数了,此是a= "是素数 ".
如果你把程序写成这样,你可能会看得比较清楚了:
n=val(thisform.text1.value)
a= "是素数 "
for i=2 to n-1
if mod(n,i)=0
a= "不是素数 "
exit
endif
endfor
thisform.label2.caption=a