VB里if语句判断有点小问题
if判断里面多个判断应该如何编写?假如我想针对der》0 或=0或《0分别编写呢?
是不是if der》0 then………if der=0 then…… if der《0 then……这时else又出现在哪?我语法不是很会哈。。。又追加的! 展开
我的窗口控件如图所示:
以下代码即可满足你的计算要求:
Private Sub Command1_Click()'计算按钮代码
Dim a, b, c As Integer
Dim X1, X2 As Single
Dim dear As Single
a = Val(Text1.Text)
b = Val(Text2.Text)
c = Val(Text3.Text)
dear = b ^ 2 - 4 * a * c
Label1.Caption = "dear=" + Str(dear)
If dear > 0 Or dear = 0 Then
X1 = (-b - Sqr(dear)) / (2 * a)
X2 = (-b + Sqr(dear)) / (2 * a)
Text4.Text = Str(X1)
Text5.Text = Str(X2)
Else
Text4.Text = "无解"
Text5.Text = "无解"
End If
End Sub
Label1.Caption = "dear=" + Str(dear)
这句话是什么意思?我们没学过呢。。。
还有在判断语句中,两个条件是独立的,也就是说,我的那个代码错误是因为在else后没有把x赋予45两个文本框?因为第一个判断里的赋值只对第一个判断有效而对第二个判断无效?
还有能说说你的界面是如何美化的么?给我提一丢丢建议?
你好!
难得你这么上心,我就再做些解答。不需要加什么分,只要对你有所帮助就好。
=============================================================
1、Label1.Caption = "dear=" + Str(dear)的意思是,用等号后面的两个字符串相加,得到一个新的字符串。然后给label1的Caption属性赋值。Caption属性是指在运行中标签控件需要显示的内容。
你在窗体中添加这个控件,运行我的代码,就知道。Caption属性不仅label控件有,按钮、窗体等控件都有,含义都是一样的。
我增加这一语句,是想把根号下的值显示出来,是大于零还是小于零,一目了然。
2、你对IF语句的理解有点偏差。其实,你的判断语句(if der >0 then)中,并没有两个条件,而只有一个条件(der >0)。而在我的判断语句(If dear > 0 Or dear = 0 Then)中才有,它的意思是当dear > 0 和 dear = 0,只要有一个条件成立,那么就执行then之后的语句,否则执行else之后的语句。
3、关于val(string)函数,应该这样理解:将 "123"(字符123) 这样的字符串,转换为可以进行加减乘除运算的123(一百二十三),以便参加算术运算。而str(x)函数,则是val函数的逆运算,将一个数值x转换成字符串。比如 str(100/5),其结果是 "20",注意,这个20是字符型的,而非数值20。
4、你已经悟到了,你在else之后,并没有语句去改变text4、text5的text属性值。这一点,Yuqi_Tan兄的代码中已经很好解决了。
5、建议你写代码时,应该像Yuqi_Tan兄那样,在适当的行缩进,这样程序的层次分明,便于阅读与分析。
6、关于美化,我没有很好的建议,只是将相关联的控件,放在一起排列整齐,大小相同,再取
相同的背景颜色,也就差不多了。但是现在我觉得你现在,应该把精力主要放在基本语法上面。
7、我去念佛了,你要是有空,也跟我去。
2、把if der >0 改成der>=0。
3、把x1="无解“:x2="无解"改成text4="无解":text5="无解"。
4、最好在前面再加上dim x1 as integer,x2 as integer
然后 再试一试,应该就好了。目测没有发现其它错误。
有问题再留言。
我为什么要把x设置为整数?这样不是有限制了么?而且为什么不把x从字符串转化为数据?转化为数据不是更准确么?
1、你没有对声明x1和x2两个变量的类型,我建议你加上,可是我又写错了。应该是声明成为单精度类型,就是dim x1 as single,x2 as single。
2、把x1和x2声明成为单精度数,就足够准确了。
3、如果想按照der的值多分几个选择项,可以这样用:
if der >0 then
x1=(-b+sqr(der))/(2*a)
x2=(-b-sqr(der))/(2*a)
elseif der=0 then
x1=-b/2a
x2=x1
else
text4="无解"
text5="无解"
end if
如有疑问再留言。