一个关于逻辑判断的问题

earphone 2000-07-25 06:32:00

一个关于逻辑判断的问题,请看程序
letter=chr(13)
if asc(letter)<> 8 or 9 or 10 or 13 then
…………
…………
end if
我想判断出letter中的变量的ascii码不为8,9,10,13可每次调试
都会执行if语句中语句,请都各位。
...全文
168 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
mafangsan 2000-07-25
  • 打赏
  • 举报
回复
Mickey_Chue大虾!说的对,只顾提醒earphone要每处都写上“asc(letter)<>”了,忘了判断逻辑值了!汗颜!谢谢!
Mickey_Chue 2000-07-25
  • 打赏
  • 举报
回复
mafangsan兄台说:
> 如下就行
> if asc(letter)<> 8 or asc(letter)<> 9 or asc(letter)<> 10 or asc(letter)> <> 13 then

试想:letter=asc(9)
则:asc(letter)<>8及10、13都为真,OR之后整个表达式也为真,
故:此表达式永远为真。
那么:兄的式子可写为:
if !(asc(letter)=8 or asc(letter)=9...)
Tyro 2000-07-25
  • 打赏
  • 举报
回复
首先,你的if语句相当于if (asc(letter)<>8) or 9 or 10 or 13 then
当然在任何情况下都会执行

为什么不写成
select case asc(letter)
case 8,9,10,13
…………
…………
end select
DragonJiang 2000-07-25
  • 打赏
  • 举报
回复
mafangsan is right!
mafangsan 2000-07-25
  • 打赏
  • 举报
回复
如下就行
if asc(letter)<> 8 or asc(letter)<> 9 or asc(letter)<> 10 or asc(letter)<> 13 then

7,762

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧