主题:新手求助QB几个问题:
蓝色的水晶
[专家分:90] 发布于 2006-09-29 17:33:00
我刚开始学习QB,以后难免在这里问一些弱智的问题,请高手们不要笑话?
1、
x=100:y=200
print x+y=300
end
运行输出:-1
还有一个类似的:
x=5:y=6
print x+y=11
print x=5 and y=6 and x+y=11
end
输出为-1 -1
这两例中的print语句后都能判断真假,好像是为真时输出为-1,那为假则输出为0了,这是我的推测,哪地方有没有对这种情况的专门解释呀?
2、print a=3+5
输出为:0
输出语句后的a=3+5这个表达式如何理解?理解成假?
请大家帮我这个新手回答这几个问题,或能找到一些相关文件贴在这,多谢!!!
2、if a then print a else print a+1
end
运行输出:1
IF……then是对条件进行判断,如果是一个变量,将如何理解?这里面执行的是else后的语句,说句那个条件是假,为什么条件为一个变量就是假?
回复列表 (共6个回复)
沙发
啊远 [专家分:2610] 发布于 2006-09-29 18:47:00
呵呵! 哎呀! 我现在只能回答这种问题了! 又可以出来透透气了! 呵呵!
跟你说这个!不能不说 print 的格式! 呵呵!
下面是 print 语句的格式
---------------
关键字 表达式
↓ ↓
print 这里可以是任何符合语法的表达式
--------------------------------------
print 语句的功能就是输出表达式计算到最后结果的值
现在可以解释你的 print a = 3 + 5 了
我们来模拟一下这条语句的执行:
像数学一样! a = 3 + 5 这个表达式包含一个概念! 就是"运算符优选级"!像数学知识道理一样! 先 ×÷ 后加减!
而在这个QB表达式里面 " + " 运算符和优先级比 "=" 运算 高!
所以表达式第一步就执行 "3 + 5 = 8 " 的操作
现在式子变成这样 print a = 8 ,
现在 a = 8 其实是一个逻辑表达式,意思就是判断 a 是否等于 8 ,
如果 a 等于 8 则 表达式结果为 TRUE 即真 ,
如果 a 不等于 8 则表达式结果为 FALSE 即假,
而现在变量 a 的值 并不等于 8 所有表达式返回了 FALSE 也就是假!
print a = 5 + 3 结果为什么不是 FALSE 而是 0
因为QB内部,或者可以说计算机内部都是如此
用 0 表达 FALSE 即假时一定为 0
用 非 0 值表示 TRUE 即真时不定为 -1, 但是一定不是 0
------------------------------------------------------
晕!原来小小的道理也可以拉得这么长!呵呵!
板凳
啊远 [专家分:2610] 发布于 2006-09-29 18:57:00
2、if a then print a else print a+1
end
运行输出:1
IF……then是对条件进行判断,如果是一个变量,将如何理解?这里面执行的是else后的语句,说句那个条件是假,为什么条件为一个变量就是假?
================================================
IF 的格式如下面
IF 表达式 THEN
’表达式值为 True 时程序转到这到执行
' 表达式值为 false 时程序不跳过这里不执行
' 这里面可以有很多合法的QB语言
ELSE
’表达式值为 False 时程序转到这到执行
' 表达式值为 True 时程序不跳过这里不执行
' 这里面可以有很多合法的QB语言
END IF
if a then print a else print a+1 值会等于 1 是因为
a 没有明确声明 默认为 整数形 并且QB自动赋予它 0 值
当程序执行到 if 的时候 ,前面讲过 0 表示 FALSE
if 得到0 程序条件不成立!所以执行 else 后面的语句 print a + 1
print a + 1 ===> print 0 + 1 因为 a 变量的值默认为 0 , 0 + 1 = 1
所以 print 语句输出 1
3 楼
啊远 [专家分:2610] 发布于 2006-09-29 18:59:00
呵呵!看来我适合去教新手!
4 楼
蓝色的水晶 [专家分:90] 发布于 2006-09-29 19:19:00
谢谢楼上给我的答复,使我这个新手进步了许多;想不到你们的答复如此之快,我不盛感激!我现在正在自学QB,学习过程一定会有这样那样的问题,以后难免再麻烦你们。再次感谢!!
5 楼
moz [专家分:37620] 发布于 2006-09-29 19:35:00
再次感谢感谢。
6 楼
lihq123 [专家分:30] 发布于 2006-09-30 11:36:00
语句非法
我来回复