菜鸟求救,关于VB倒推的问题,很急!!

shanzei 2005-04-14 12:55:05
请教一下,在VB中如何用IF语句实现倒推
例:已经知道当I=0时,layertype!=0,i=3时layertype=11这两个条件,
来推断i=2时,layertype!的值一定为3,否则报错。

注:I的值和layertype!的值之间并无规律可寻的~~
...全文
154 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
shanzei 2005-04-15
  • 打赏
  • 举报
回复
或者帮我看一下,下面的代码要怎么改啊~~
------------------------------------------
------------------------------------------
for i=0 to Highestlayer!
setlayer@ i

if i=0 and Layertype!<>0 then
print"请检查L1,TOP层定义错误或层排序有误!"
end if
if i=1 and layertype!<>3 then
print"请检查BOTTOM层,BOTTOM层定义错误或层排序有误!"
end if
if i=1 and layertype!=3 then
iFlag1=1
end if
if i=3 and layertype!=12 then
iFlag2=1
end if
if iFlag1+iFlag2=2 and (i=2 and layertype!<>11) then
print"请检查顶层阻焊,顶层阻焊定义错误或者排层错误!"
end if
if i=2 and layertype!=11 then
iFlag3=1
end if
if i=4 and layertype!=7 then
iflag4=1
end if
if iFlag3+iFlag4=2 and (i=3 and layertype!<>12) then
print"请检查底层阻焊,底层阻焊定义错误或排层错误!"
end if
…………

---------------------------
---------------------------
有点疑问~~
当iFlag1+iFlag2=2 的值为真时,那岂不是i=1且i=3 ??
各位大虾帮帮忙啊~~
wynbfqny 2005-04-14
  • 打赏
  • 举报
回复
不明白
shanzei 2005-04-14
  • 打赏
  • 举报
回复
“layertype!”整个是个变量?
不会吧……“!”怎么定义进变量啊……

-----------------------------------
这个程序是用来判断PCB板各层定义属性是否正确的
“layertype!”是CAM350的宏命令中自带的,用途是返回当前层属性值,如果当前层为”TOP“层,返回值得为“layertype!=0”……如果为”BOTTOM"层则返回值为“layertype!=3”
我先定义了 setlayer@ i
现在能确定的只有如果i=0时(第一层),layertype!=0;和i=1时(第二层),layertype!=3;
我想用IF 语句来逐层判断,从i=0 to Highestlayer!,
layer1(i=0)和layer2(i=1)很好判断属性,因为他们的属性只可能有一种,
而layer3 to Highestlayer 之间,每层layer的属性都可能有几种,所以只能从本层的上一层的layertype!值和下一层的layertype!值来判断本层的layertype!值是否正确~~

不知道我说这么多,会不会看起来有点晕~~


Ronix 2005-04-14
  • 打赏
  • 举报
回复
“Description: "duplicate label"
Line 32:
  if i=3 and layertype!=11 then
________________________________________
这个……
“layertype!”整个是个变量?
不会吧……“!”怎么定义进变量啊……



for ……
  if i=0 and layertype=0 then
    iFlag1=1
  end if
  if i=3 and layertype=11 then
    iFlag2=1
  end if
next
  
if iFlag1+iFlag2=2 and (i=2 and layertype=3) then
  msgbox "i=2 -> layertype=3"
else
  msgbox "i=2 -> layertype<>3"
end if




我的目的是利用i和对应的layertype!值和i+2对应的layertype!值,来判断i+1对应的layertype!的值是否为真.
————————————————————————————————————
那就是递推咯?而不止是“以i=0和i=3推导i=2”这一组情况?
好像……更晕了……
可以的话,最好再详细些……
shanzei 2005-04-14
  • 打赏
  • 举报
回复
楼上的大虾意思有点接近了~~
但是我刚才把这段代码放进去,提示
“Description: "duplicate label"
Line 32:
  if i=3 and layertype!=11 then

能不能帮帮忙,把这个语句用if的嵌套方式来表达,
因为这段代码只是我的一个FOR……NEXT循环中的一段而已~~
我的目的是利用i和对应的layertype!值和i+2对应的layertype!值,来判断i+1对应的layertype!的值是否为真.

zglnew 2005-04-14
  • 打赏
  • 举报
回复
不明白
thelostland 2005-04-14
  • 打赏
  • 举报
回复
i=0 和 i=2 能同时成立?
Ronix 2005-04-14
  • 打赏
  • 举报
回复
while ……
  if i=0 and layertype!=0 then
    iFlag1=1
  end if
  if i=3 and layertype!=11 then
    iFlag2=1
  end if
  if iFlag1+iFlag2=2 then
    i=2
    layertype!=3
  end if
wend

是不是这个意思?
我还是有点晕……
shanzei 2005-04-14
  • 打赏
  • 举报
回复
是不是我说的不明白啊~~、我的意思是“假设当条件1:i=0,layertype!=0; 和条件2:i=2,layertype!=11都成立时,则i=2,layertype!=3,否则报错”这个怎么在VB里面用if 语句来描述。


7,787

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧