回 帖 发 新 帖 刷新版面

主题:新手求助QB几个问题:

我刚开始学习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个回复)

沙发

呵呵! 哎呀! 我现在只能回答这种问题了! 又可以出来透透气了! 呵呵!

跟你说这个!不能不说 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

------------------------------------------------------
晕!原来小小的道理也可以拉得这么长!呵呵!

板凳

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 楼

呵呵!看来我适合去教新手!

4 楼

谢谢楼上给我的答复,使我这个新手进步了许多;想不到你们的答复如此之快,我不盛感激!我现在正在自学QB,学习过程一定会有这样那样的问题,以后难免再麻烦你们。再次感谢!!

5 楼

再次感谢感谢。

6 楼

语句非法

我来回复

您尚未登录,请登录后再回复。点此登录或注册