请解释下面程序每一句含义以及最后输出的值

[复制链接]
查看11 | 回复2 | 2011-6-24 01:03:44 | 显示全部楼层 |阅读模式
PrivateSubForm-Click()
Fori=1to4
X=1
Forj=1to3
X=3
Fork=1to2
X=X6
Nextk
Nextj
Nexti
printx
Endsub
回复

使用道具 举报

千问 | 2011-6-24 01:03:44 | 显示全部楼层
PrivateSubForm-Click()--------vb窗体点击事件
Fori=1to4----------------------------for循环,i为1到4,执行下面的nexti时自动加1,最多加到4
X=1-------------------------------------设置变量x值为1
Forj=1to3---------------for循环,j为1到3,执行下面的nextj时自动加1,最多加到3
X=3-----------------------------设置变量x值为3
Fork=1to2-------------------同理
X=X6------------------设置x值为之前x的值再加上6
Nextk-----------------------------进行fork...下一次循环
Nextj
Nexti
printx-------------------------输出变量x的值
Endsub-------------------------方法结束
最后的x值为15,其实分析很简单的:
1:每次i循环后都将x重新赋值为1,这就说明i的循环次数不会影响x的最终值
2:每次j循环后都将x重新赋值为3,这就说明j的循环次数不会影响x的最终值
3:由1和2知道循环次数i和j并不影响结果值x,那么最后有效范围是:j=3的最后一次循环,此时x=3,那么最后k还有两次循环,第一次循环后x=36--x=9,第二次循环后,x=96---15









<h4class=\"ask\">追问


(1)第一次循环:i=1x=1J=1x=3k=1x=36
第二次循环:K=2x=96j=2x=3i=2x=1(按NextkNextjNexti的顺序)
(2)ij循环完之后k才从1to2循环
这2种哪个对?还是都不对?
回复

使用道具 举报

千问 | 2011-6-24 01:03:44 | 显示全部楼层
循环嵌套的结果是:第一层循环i=1后,x=1,然后执行第二层循环j=1,又把x=3,然后执行第三层循环,最后一层循环要全部循环完,所以k循环了2次,当k循环完后,它的上一循环,即j开始循环第二次,此时j了j=2,然后再次循环k,直到k循环完了,再回来循环j,最后j循环完了此时i了,i=2了,然后重复,即,先执行内循环,在执行外循环,所以有效的一次是,i=4,j=3时的最后循环,所以,可以说你理解的都不对,

每当外一层的i或者j变化时,内循环都要全部执行完,当所有内循环结束后,该层循环的i或者j或者k才会自动改变值。即:i变化后,j循环要全部执行一遍j=1,3,每当j变化时,k都要全部执行k=1,2,所有k里面的循环以后要执行i=4乘以j=3乘以k=2次,共24次,不信你可以在k循环里print1,试试,共弹出24次
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行