VB中end if没有块If

2025-03-23 04:27:04
推荐回答(1个)
回答(1):

If n Mod 2 <> 0 Then MsgBox ("总脚数不是偶数")
End If
If n <= 2 * m Then MsgBox ("脚数小于头数的倍数,重新输入")
End If

这两条语句你直接把要执行的语句放到then的后面了,所以是不要 endif的。加了是多余的。会报错。

还有就是你的这个判断其实是个摆设,起不到实际作用。不管输入是否正确都会顺序执行下来。根据你的思路。你可以这样写:

Private Sub Form_click()
Dim m%, n%, x%, y%
m = Val(InputBox("请输入鸡和兔的总头数"))
j: n = Val(InputBox("请是输入鸡和兔的总脚数"))
If n Mod 2 <> 0 Then
MsgBox ("总脚数不是偶数")
GoTo j
End If
If n <= 2 * m Then
MsgBox ("脚数小于头数的倍数,重新输入")
GoTo j
End If
y = (n - 2 * x) / 4
x = m - y
Print "鸡有:"; x; " 只 "; "兔有:"; y; "只"
End Sub