我想编辑一个可以解出复数根的一元二次方程计算器,结果老是卡在红字这里。
麻烦大家帮我看下究竟该怎么改,谢谢!
Private Sub CmdSolve_Click()
Dim a As Single: a = Val(Text1.Text)
Dim b As Single: b = Val(Text2.Text)
Dim c As Single: c = Val(Text3.Text)
Dim p As Single: p = b ^ 2 - 4 * a * c
Dim x1 As Single, X2 As Single, e As Single, f As Single
If a = 0 Then
Text4.Text = "无解"
Text5.Text = "无解"
Else: If p >= 0 Then x1 = (-b + Sqr(p)) / (2 * a): X2 = (-b - Sqr(p)) / (2 * a): Text4.Text = x1: Text5.Text = X2
Else: e = -b / (2 * a): f = (Sqr(-p)) / (2 * a): Text4.Text = Str(e) & "+" & Str(f) & "i": Text5.Text = Str(e) & "+" & Str(f) & "i"
End If
End If
End Sub
如果If.....else要分行使用,那么then后面要换行,而且要有end If
否则if和else要用在同一行。
下面这两种都是可以的If a = 0 Then
Text4.Text = \"无解\"
Text5.Text = \"无解\"
Else
If p >= 0 Then
x1 = (-b + Sqr(p)) / (2 * a): X2 = (-b - Sqr(p)) / (2 * a)
Text4.Text = x1
Text5.Text = X2
Else
e = -b / (2 * a): f = (Sqr(-p)) / (2 * a)
Text4.Text = Str(e) & \"+\" & Str(f) & \"i\"
Text5.Text = Str(e) & \"+\" & Str(f) & \"i\"
End If
End If If a = 0 Then
Text4.Text = \"无解\"
Text5.Text = \"无解\"
Else: If p >= 0 Then x1 = (-b + Sqr(p)) / (2 * a): X2 = (-b - Sqr(p)) / (2 * a): Text4.Text = x1: Text5.Text = X2 Else: e = -b / (2 * a): f = (Sqr(-p)) / (2 * a): Text4.Text = Str(e) & \"+\" & Str(f) & \"i\": Text5.Text = Str(e) & \"+\" & Str(f) & \"i\"
End If还有建议少使用“:”这样代码开起来有时会很乱
谢谢指点!那些行号是怎么来的?
在VB中认“GOTO某某行”这种语句吗?
[i=s] 本帖最后由 Francisco 于 2009-3-8 14:39 编辑
行号是discus的code代码带的。
GoTo某某行后面可以时行号,也可以是标号,行号就是这个过程中的第几行,标号就是一串字符,以:结尾,如:
.......
if.....then goto line1
.....
line1:
.....
谢谢了!
下面把我这个能够解出虚根的一元二次方程计算器发布,欢迎各路高手批评指正!
如果仅仅想用,只要保留那个.exe即可。
VB中认goto某某行 才从QB转VB的时候常用 代码结构会很乱....