当前位置: 代码迷 >> VFP >> 关于IF语句,该怎么解决
  详细解决方案

关于IF语句,该怎么解决

热度:9197   发布时间:2013-02-26 00:00:00.0
关于IF语句
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
  相关解决方案