永发信息网

VB里if语句判断有点小问题

答案:2  悬赏:20  手机版
解决时间 2021-11-11 09:10
VB里if语句判断有点小问题
最佳答案
1、你把x1=val((-b-sqr(der)/2a)改成x1=-b-sqr(der)/2a,相应的x2也做相同的修改。
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如有疑问再留言。
追问嗯嗯嗯,我修改好了~可是还有很多新问题呢~我是初学者,刚接触,能悄悄把你的QQ告诉我么?我方便随时问你问题么?追答OK,也欢迎你,448674357开***。
全部回答

我的窗口控件如图所示:

以下代码即可满足你的计算要求:

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、我去念佛了,你要是有空,也跟我去。追问嘻嘻~也感谢你咯~我刚接触这个几天呢~可是特别喜欢~很多语法都不会~正在学呢~其实我也信神~客观唯心主义~
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
广州赛意信息科技股份有限公司怎么样?
双排小货车和箱货车哪个好?什么品牌的质量好
与好人相处就如同什么 与坏人相处就如同什么
有没有有关‘人妖殊途’的诗词?
哪个拜师好LOL的,拜了官人只有视频文件什么
贵宾坊KVT地址在哪,我要去那里办事,
带雨云埋一半山的上一句是什么
柳兰村地址在什么地方,我要处理点事!
经常去美容院修眉好不好呢?
明天10月5日去杭州限牌什么号
父母嫌男朋友穷说出去丢人,我该怎么办
求十天突破雅思写作剑8或9
小米工作到底有多累 看看离职CFO怎么说
请问像拉扎尔·安格洛夫那样的肌肉我们能通过
娱乐头条怎么改人名。就是一个软件将明星名字
推荐资讯
欧尚汽车是个什么样的牌子,好不好?
未按照规定期限办理纳税申报和报送纳税资料,
赛维洗衣(文理店)地址在哪,我要去那里办事,
环宇歌楼地址在什么地方,想过去办事,
Anyone与Any one,区别在哪里?
三点四十是什么时辰
描写冬天的经典句子有哪些
这为什么老是有个三,啥也没有啊
这个什么葡萄酒,名称叫什么?价格是多少?
刀剑乱舞极化的刀哪些好
求助(dreams come true美梦成真 )的 うれしい
我应不应该问男友房子是不是买的还是租的?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?