标题:请教条件不符返回上一级循环代码
只看楼主
fdxxhjc
Rank: 1
等 级:新手上路
帖 子:305
专家分:0
注 册:2014-4-10
结帖率:73.44%
已结贴  问题点数:20 回复次数:10 
请教条件不符返回上一级循环代码
a=0
for i=1 to 100
for j=1 to 200
a=i*i+j*j-301*ij
if a>=0
    '当a=i*i+j*j-301*ij计算的结果<0时,循环返回到j再增加1,直至符合条件a>0才在立即窗口中显示并继续循环,请问在这行(或这行的注释符前面)要加个怎样的代码,谢谢(我加了个loop电脑提示出错)

else
endif
debug.print "a=";a
next j
next i
2015-05-15 08:46
lianyicq
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:26
帖 子:735
专家分:3478
注 册:2013-1-26
得分:0 
for i=1 to 100
  for j=1 to 200
    a=i*i+j*j-301*i*j
    if a>0 then debug.print "a=" & a
  next
next

现在问题是在i,j的取值范围内没有能满足a>0的

大开眼界
2015-05-15 09:14
fdxxhjc
Rank: 1
等 级:新手上路
帖 子:305
专家分:0
注 册:2014-4-10
得分:0 
先生不好意思,等式是a=i*i+j*j-301*j
2015-05-15 09:26
lianyicq
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:26
帖 子:735
专家分:3478
注 册:2013-1-26
得分:0 
回复 3楼 fdxxhjc
那就直接把a的表达式修改了就行了

大开眼界
2015-05-15 09:38
fdxxhjc
Rank: 1
等 级:新手上路
帖 子:305
专家分:0
注 册:2014-4-10
得分:0 
以下是引用fdxxhjc在2015-5-15 08:46:55的发言:

a=0
for i=1 to 100
for j=1 to 200
a=i*i+j*j-301*ij
if a>=0
    '当a=i*i+j*j-301*ij计算的结果<0时,循环返回到j再增加1,直至符合条件a>0才在立即窗口中显示并继续循环,请问在这行(或这行的注释符前面)要加个怎样的代码,谢谢(我加了个loop电脑提示出错)

else
endif
debug.print "a=";a
next j
next i
啊,对不起,我的第五行代码应该是:if a<0,其他与原问题一样,请教在注释行前应添加怎样的代码,谢谢
2015-05-15 09:47
wmf2014
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:216
帖 子:2039
专家分:11273
注 册:2014-12-6
得分:0 
a=0
for i=1 to 100
for j=1 to 200
a=i*i+j*j-301*ij
if a>=0 then debug.print "a=";a  '这不就结了
next j
next i

能编个毛线衣吗?
2015-05-15 09:51
lianyicq
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:26
帖 子:735
专家分:3478
注 册:2013-1-26
得分:0 

for i=1 to 100
  for j=1 to 200
    a=i*i+j*j-301*i
    if a<0 then debug.print "a=" & a
  next
next
不管a是否小于0,都要执行next j ,否则代码就无法执行.区别只是在于a<0时,要打印.

大开眼界
2015-05-15 09:54
fdxxhjc
Rank: 1
等 级:新手上路
帖 子:305
专家分:0
注 册:2014-4-10
得分:0 
a=0
for i=1 to 1000
for j=1 to 2000
a=8888888*i*j-i*i-j*j
if a>0
    '当a=i*i+j*j-301*ij计算的结果<0时,循环返回到j再增加1,直至符合条件a>0才在立即窗口中显示并继续循环,请问在这行(或这行的注释符前面)要加个怎样的代码,谢谢(我加了个loop电脑提示出错)
    '假如这里有很多很复杂的关于i、j的计算关系式
    '在这里有个“if a>0”条件的话,可以少很多计算量,或在这里要将计算的结果写入DBF文件时,若没有这个“if a>0”限止条件,全部写入到DBF文件会使该文件空间很大,所以这里想设置这个“不符合条件返回循环”的代码,谢谢
else
endif
  '打开DBF表
     'FF1rs1.AddNew
     ,将计算结果写入DBF表
  'FF1rs1.Update
next j
next i
2015-05-15 10:31
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4912
专家分:29900
注 册:2008-10-15
得分:0 
楼上的不是回答了吗?

a=0
for i=1 to 1000
for j=1 to 2000
a=8888888*i*j-i*i-j*j
if a>0
   '继续其他运算
   '打开DBF表
     'FF1rs1.AddNew
     ,将计算结果写入DBF表
  'FF1rs1.Update
else
  '这里不动作
endif
next j
next i

授人于鱼,不如授人于渔
早已停用QQ了
2015-05-15 10:39
fdxxhjc
Rank: 1
等 级:新手上路
帖 子:305
专家分:0
注 册:2014-4-10
得分:0 
以下是引用风吹过b在2015-5-15 10:39:43的发言:

楼上的不是回答了吗?
 
a=0
for i=1 to 1000
for j=1 to 2000
a=8888888*i*j-i*i-j*j
if a>0
   '继续其他运算
   '打开DBF表
     'FF1rs1.AddNew
     ,将计算结果写入DBF表
  'FF1rs1.Update
else
  '这里不动作
endif
next j
next i
哦,我的要求是想当a>0时不执行中间的计算更不写入到DBF,立即返回到下一个j(甚至返回到下一个i),直到a<=0时才进行计算并写入到DBF,如何添加代码来实现,谢谢先生
2015-05-15 10:54



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-445317-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.131350 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved