首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > VFP >

关于IF语句,该怎么解决

2012-02-09 
关于IF语句nval(thisform.text1.value)a是素数 fori2ton-1ifmod(n,i)0a 不是素数 exitendifendfo

关于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

热点排行