TC官方合作论坛

标题: 发一个小小的误区,希望大家不要重蹈覆辙…… [打印本页]

作者: rainshine    时间: 2014-1-16 10:36
标题: 发一个小小的误区,希望大家不要重蹈覆辙……
本帖最后由 rainshine 于 2014-1-16 10:38 编辑

咳咳!必须有动画啊!!我搞了好久才会录。。
---------------------------------
功能 渐变显示_消息路由(句柄,消息,w参数,l参数,时间,x坐标,y坐标)    如果(消息==258)
        如果(句柄==控件.获得句柄("编辑框0"))
            如果(w参数==8)
                返回 假
            如果结束
            如果(w参数>#4e00&&w参数<#9fa5)
                返回 假
            否则
                返回 真
            如果结束
        如果结束
    如果结束
返回 假
功能结束
刚开始写这段代码的时候,if语句是这样的:
如果(#4e00<w参数<#9fa5)
可经过调试总是效果不对,于是乎就开始查找原因,打断点看到前面一切正常,就是这个if这里判断不对。
又看了w参数的值,是在这个范围啊……
突然- -,灵光一闪,想起以前学c和pascal的时候的基础知识(打好基础很重要啊!C语言的好多基础性的东西都对我学tc有很大帮助),"<"运算符计算的结果是布尔型,真或者假,表示第一个操作数是否小于第二个操作数……因为结合性是从左向右且优先级相同,所以此表达式的计算过程剖析为:
1、计算  #4e00<w参数  返回的值是真或假  因tc把-1看作真,所以返回值是-1或0,假设这个表达式的值赋值给P
2、计算  P<#9fa5  作为最终的结果  我们可以看一下P的取值范围是-1或0  所以P的值永远小于#9fa5。所以不管P是多少,最终的计算结果永远是真(-1)。
【因为P的值是#4e00<w参数,所以不管这两个操作数是多少(#4e00是常量,所以在此处只有w参数控制表达式的值),最终的计算结果永远是真(-1)。】

好吧好吧 我赶脚我貌似有点学痴了……被数学和物理搞迷糊了,不等式和二次函数……0.0~
其实把表达式前半段赋值给一个变量,再用这个变量做第二步计算就能看出来咯。
就这样~希望大家一如既往地支持,另外,午安嘿嘿。



作者: as128214121    时间: 2014-1-16 11:01

作者: rainshine    时间: 2014-1-16 11:06
as128214121 发表于 2014-1-16 11:01

这个帖子肯定沉了、
作者: aimei_8866999    时间: 2014-1-16 13:27
楼主好人,顶一下,以后这个弯路我不会走了
作者: rainshine    时间: 2014-1-16 14:01
aimei_8866999 发表于 2014-1-16 13:27
楼主好人,顶一下,以后这个弯路我不会走了

啊哈谢谢啦。
作者: qisi2012    时间: 2014-1-19 17:42
看到后请联系我(关于rainshlne)直接加我QQ 969327708





欢迎光临 TC官方合作论坛 (http://bbs.52tc.co/) Powered by Discuz! X3.1