我学vb中遇到2个问题,请教高手解答!

来源:百度知道 编辑:UC知道 时间:2024/09/21 15:51:21
1.关于Mod

像12 Mod 7 =5这样的式子我能看明白,如果前面的小后面的大结果该是什么?我在vb中试了一下,例如3 Mod 7 =3,2 Mod 5 =2,是不是所有前面数小后面数大,最后的结果是前面那个小的数呢?

我在vb中试0.5 Mod 4 的时候结果为0,像1.5,2.5 Mod 4的结果都四舍五入了,为什么0.5的数取Mod的时候不四舍五入?

2.例如:
dim x as integer, i as integer
x=0
for i = 20 to 1 step -2
x=x+i\5
next i
其中step每次从20中减去2,如果一次从20-18-16-。。。-2减,减到2的时候是否还再减一次?
如果不够1的时候是不是就不再执行“x=x+i\5”了?直接跳出for循环?

请高手能详细解释一下!谢谢!

1、mod是取余,所以像3 mod 7 结果本来就应该是(得0)余3的
“所有前面数小后面数大,最后的结果是前面那个小的数”这么说虽然不科学,但就结果来说是没错的
可以说有这么一个规律,如果整数部分为偶数(如0.5,2.5,4.5)是不会四舍五入的,而奇数(如1.5,3.5)就会四舍五入,所以2.5 mod 4不会四舍五入,你最好再试试,至于为什么就不知道了

2.会跳出,试一下就知道了...

1、Mod的意思是取余数,你知道这个就明白了。
3mod7=3+7*0 ……所以是3

2、像这样的例子你可以中间插入输出来理解其中的过程,也可以单步调试运行,看程序是怎么走的。

减到2的时候还会继续减,因为20>2>1,并且还会继续执行x=x+i/5
直到i不满足20-1时。

理解循环语句,for语句是先判断再执行。若满足则执行,否则退出。
do 语句是先执行后判断
……
……

这样的问题不用高手,你认真看下VB的基础教程就都知道了。

1.
Mod 运算符,用来对两个数作除法并且只返回余数。
在进行 Mod 运算或求余数运算时,该运算符将 number1 用 number2 除(将浮点数字四舍五入成整数),并把余数作为 result 的值返回。
3mod7,就是3/7的余数,和10/7的结果一样,都应该是3。
Excel里的VB求模四舍五入有BUG,整数部分为奇数的正常,整数部分为偶数的都不对,0.5,2.5,4.5都出错,1.5,3.5,5.5都对。这个你用的时候要小心。最好是自己做INT(0.5+原数)做四舍五入。
2.
i=2的时候还会执行最后一次,之后,i=0,就不执行了