0

我正在为我要参加的课程解决先决条件问题。我正在修改两段代码。我已经完成了一个,我被困在这个上。我正在尝试阅读缩写的地址行。在本例中为 FL33606。我可以读取地址。但是我收到退出命令“Q:完成”的未定义错误。有人可以帮助我找出问题所在吗?

N prompt,val, done
    S prompt="Enter State and Zip (StateZip): "
    F  W !,prompt R val Q:val=""  D  Q:done  
    . I val'="?2A5N" W !,"Invalid entry" Q
    . S done=1
    I val="" q
    W !,"Valid Entry: ",val
    Q
4

1 回答 1

0

我有两个错误

  • done变量应该在第一次读取之前定义
  • 模式不应该用引号引起来,?运算符在哪里=
  S prompt="Enter State and Zip (StateZip): "
  S done=0
  F  W !,prompt R val Q:val=""  D  Q:done  
  . I val'?2A5N W !,"Invalid entry" Q
  . S done=1
  I val="" q
  W !,"Valid Entry: ",val
  Q

为什么使用短命令和点?

这不是更好的可读性吗?

  Set prompt = "Enter State and Zip (StateZip): "
  For {
    Write !,prompt 
    Read val 
    Quit:val=""  
    Quit:val?2A5N
    Write !,"Invalid entry" 
  } 
  If val="" Quit 
  Write !,"Valid Entry: ",val
  Quit
于 2019-10-21T19:40:36.690 回答