循环明明都有 编译却总说没有FOR
哪位高手帮忙看看 我明明写了FOR j=1 To shu Step 1为什么一编译就说我NEXT j没有FOR呢 如能解决本人不胜感激!!!
For i = 1 To heng Step 1 '用循环穷举可能圆心
rx(i) = rx(i - 1) + (finalx - prex) / heng / unit
For j = 1 To shu Step 1
ry(j) = ry(j - 1) + (finaly - prey) / shu / unit
rd(i, j) = Sqr(rx(i) ^ 2 + ry(j) ^ 2)
If Abs(rd(i, j) - rs) > 2 Then
GoTo xiaci
End If
If rs < rd(i, j) Then '半径小于原点与圆心距离的情况
x0(i, j) = qiux0(rs, rx(i), ry(j), angle)
If x0(i, j) > 3 Or x0(i, j) < 0 Then
GoTo xiaci
End If
tiaok(i, j) = (pochang - x0(i, j)) / tiaosh '土条宽度
tiaosh1(i, j) = Fix((Sqr(rs ^ 2 - (ry(j) - pogao) ^ 2) + rx(i) - pochang) / b) + 1 '坡顶条数
For xi(i, j) = x0(i, j) To x0(i, j) + tiaok(i, j) * (tiaosh(i, j) + tiaosh1(i, j)) Step tiaok(i, j) 'xi对应的各个土条力矩的计算
If xi(i, j) <= pochang Then
yi(i, j) = qiuyi(rs, rx(i), ry(j), xi(i, j), angle, tiaok(i, j))
ElseIf xi(i, j) > pochang Then
yi(i, j) = qiuyid(rs, rx(i), ry(j), xi(i, j), pogao, tiaok(i, j))
End If
area(i, j) = mianj(tiaok(i, j), yi(i, j))
sinp(i, j) = (xi(i, j) + tiaok(i, j) / 2) / rs
cosp(i, j) = Sqr(1 - sinp(i, j) ^ 2)
For n = 1 To 20 Step 1
ceng(n) = Line1(n).y1 / unit
gama(n) = Val(fg1.TextMatrix(n, 2))
fi(n) = Val(fg1.TextMatrix(n, 3))
ci(n) = Val(fg1.TextMatrix(n, 4))
duan(0) = 0
If ceng(n) <= xi(i, j) * Tan(angle) And ceng(n) > = xi(i, j) * Tan(angle) - yi(i, j) Then
duan(n) = xi(i, j) * Tan(angle) - ceng(n) - duan(n - 1)
bili(n) = gama(n) * duan(n) / yi(i, j)
gamap(i, j) = bili(n) + gamap(i, j)
ElseIf ceng(n) <= xi(i, j) * Tan(angle) - yi(i, j) And Line1(n).Visible = True Then
duan(n) = xi(i, j) * Tan(angle) - yi(i, j) - ceng(n - 1)
bili(n) = gama(n) * duan(n) / yi(i, j)
gamap(i, j) = bili(n) + gamap(i, j)
tanfi(i, j) = Tan(fi(n))
GoTo jixu
End If
Next n
jixu: wi(i, j) = area(i, j) * gamap(i, j)
mr(i, j) = wi(i, j) * cosp(i, j) * tanfi(i, j) + ci(n) * tiaok(i, j) * cosp(i, j) + mr(i, j)
mt(i, j) = wi(i, j) * sinp(i, j) + mt(i, j)
Next xi(i, j)
fm(i, j) = mr(i, j) / mt(i, j)
If fm(i, j) < fmin Then
fmin = fm(i, j)
rmin = rs
xmin = rx(i)
ymin = ry(j)
ElseIf rs = rd(i, j) Then
GoTo xiaci
End If
Next j
xiaci: Next i
[解决办法]
编译却说没有FOR 并不一定就是For循环没配对,很有可能是IF与END IF没有配对
你的情况就是这样
If rs < rd(i, j) Then '半径小于原点与圆心距离的情况
For xi(i, j) = x0(i, j) To x0(i, j) + tiaok(i, j) * (tiaosh(i, j) + tiaosh1(i, j)) Step tiaok(i, j) 'xi对应的各个土条力矩的计算
Next xi(i, j)
If fm(i, j) < fmin Then
ElseIf rs = rd(i, j) Then
End If
看看以上几句就是IF与END IF没有配对
------解决方案--------------------
仔细点看看if, 有没有配对
主要这句话就是说,有没有配对的东西