乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 70|回复: 4

大加快帮我看看这个while语句

[复制链接]

8

主题

17

帖子

3

银币

初来乍到

Rank: 1

铜币
49
发表于 2003-11-13 16:52:00 | 显示全部楼层 |阅读模式
他怎么会告诉我一个参数类型错误呢?
(while (= Flag 1)
        (progn
            (setq Data         (read-line fp)
                   temp         (VD:2dPoints->3dPoints (read Data))
                   ptList              (cons temp ptList)
            )
            (if(not Data)      (setq Flag -1) )
        )
  )
错误: 参数类型错误: stringp nil
回复

使用道具 举报

63

主题

1203

帖子

10

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1455
发表于 2003-11-13 17:08:00 | 显示全部楼层
這樣試試.
(while (= Flag 1)
     (setq Data  (read-line fp)
            temp  (VD:2dPoints->3dPoints (read Data))
            ptList  (cons temp ptList))
     (if(not Data)
       (setq Flag -1) )
  )
to 樓主, 你給的程序片斷別人很難給你指出錯誤的. 發方便可以把整個程序放上來看看
回复

使用道具 举报

26

主题

3072

帖子

10

银币

社区元老

Rank: 75Rank: 75Rank: 75

铜币
3177
发表于 2003-11-13 17:52:00 | 显示全部楼层
看提示应该是变量Data为空造成的。
建议:这种问题可以用VLISP编辑器中的跟踪功能,跟踪看是那里出了问题,否则以后遇到了,你还是无法判断
回复

使用道具 举报

8

主题

17

帖子

3

银币

初来乍到

Rank: 1

铜币
49
发表于 2003-11-13 18:19:00 | 显示全部楼层
其实我的目的是从一个文本文件读入数据,因为可能不知道数据有多少行,所以另外设置一个值来控制逻辑判断,我把逻辑判断式改为(3dPoints (read Data))
              ptList (cons temp ptList)
          )
          (setq Flag 0)
      )
回复

使用道具 举报

26

主题

3072

帖子

10

银币

社区元老

Rank: 75Rank: 75Rank: 75

铜币
3177
发表于 2003-11-13 18:28:00 | 显示全部楼层
因为对data做了判断,如果(read-line fp)返回空,即data为空,这时有if判断,就不会执行下面的
   (setq
       temp   (VD:2dPoints->3dPoints (read Data))
       ptList (cons temp ptList)
   )
这句了,所以就不会执行(read data),就不会出错了。
注:(setq data (read-line fp)),如果(read-line fp)返回空,使得data为空,(setq ...)语句也将返回空,即if的判断条件为空(即假),所以就发生了跳转
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-7-6 21:12 , Processed in 0.330858 second(s), 63 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表