代码如下:
Private Sub Command1_Click()
Dim a As Double
Dim b As Double
Dim c As Double
Dim result As String
'假设从文本框获取三边长度
a = Val(Text1.Text)
b = Val(Text2.Text)
c = Val(Text3.Text)
'判断能否构成三角形
If (a + b > c) And (a + c > b) And (b + c > a) Then
If a = b And b = c Then
result = "这是一个等边三角形"
ElseIf (a = b) Or (a = c) Or (b = c) Then
result = "这是一个等腰三角形"
Else
result = "这是一个普通三角形"
End If
Else
result = "这三条边不能构成三角形"
End If
'输出结果到文本框
Text4.Text = result
End Sub
逻辑优化思路:
- 减少条件判断次数:在判断等腰三角形时,目前是通过
(a = b) Or (a = c) Or (b = c)
来判断,实际上可以先判断三边是否相等,如果不是,再仅判断a = b
或a = c
,如果都不成立,就只剩下b = c
的情况了。这样在大部分情况下可以减少一次条件判断。
- 早期退出优化:在判断能否构成三角形时,使用短路逻辑运算符
And
,只要其中一个条件不满足就不再判断后续条件,从而减少不必要计算。
- 复用条件判断结果:在判断等腰三角形和等边三角形时,复用了能否构成三角形的判断结果,避免重复判断。这样可以提高程序的整体效率,特别是在大量数据或复杂判断场景下。