【VB求素数PrivateSubCommand1_Click-查字典问答网
分类选择

来自李合的问题

  【VB求素数PrivateSubCommand1_Click()ForI=2To100'循环引用100至200之间的所有整数ForJ=2ToI-1'根据素数的定义,循环引用从2开始到整数I之前的所有整数进行判断IfIModJ=0Then'如果I能够被J整除】

  VB求素数

  PrivateSubCommand1_Click()

  ForI=2To100'循环引用100至200之间的所有整数

  ForJ=2ToI-1'根据素数的定义,循环引用从2开始到整数I之前的所有整数进行判断

  IfIModJ=0Then'如果I能够被J整除,说明I不是素数

  ExitFor'退出循环

  EndIf

  NextJ

  IfJ=IThen'如果J=I,说明I不能被从2开始到整数I之前的所有整数整除,即I是素数

  PrintI;

  EndIf

  NextI

  EndSub

  上面代码中的“IfJ=IThen'如果J=I,说明I不能被从2开始到整数I之前的所有整数整除,即I是素数”

5回答
2020-05-24 16:51
我要回答
请先登录
宁滨

  关键出现在第六行的“nextj”上,

  当j的循环一直循环的i-1时,即一直没有跳出循环时.当到j=i-1时,但它要继续向下运行,此时的nextj还要再向后加1,即j=i-1+1,也就是j=i.

  你如果没有看懂,就运行一下下面的程序,一目了然.结果是4.

  PrivateSubCommand1_Click()

  Fori=1To3

  Nexti

  Printi

  EndSub

2020-05-24 16:55:26
李合

  你又给我出问题了,为什么答案是4不是3。。。。。。本人菜鸟,原谅我的无知,解释下

2020-05-24 16:56:03
宁滨

  i不是3而是4是因为vb它在运行代码时都是在一句一句的顺序运行,其实nexti也是在执行一个命令,当下面已经到达上限的时候就跳出循环,此时i做了一个i+1的计算,只不过没有再次出现在循环中而已。

2020-05-24 16:59:17
李合

  可不可以这样子理在经过NextI的时候,I=I+1,当最后一次执行循环体的之后I=3,经过NextI后I=3+1=4了,再回过头判断ForI=1To3不符合,便输出4。所以总会多出1

2020-05-24 17:02:11
宁滨

  嗯,是啊。你可以在调试的逐语句中看一下每一句都是怎么执行的,这对你理解代码很有帮助的。就这个题吧,如果是从第五行中“exitfor”中跳出来的话,是怎么也不可能j=i的。所以就不是素数啦。

2020-05-24 17:06:09

最新问答

推荐文章

猜你喜欢

附近的人在看

推荐阅读

拓展阅读

  • 大家都在看
  • 小编推荐
  • 猜你喜欢
  •