IF中的问题
以下代码有错误,请给我一个解决方案:-(Defun ProceedT ()
(if (AND (/= scty "V")
(/= scty "v")
(/= scty "E")
(/= scty "e")
)
(alert "Invalid Option Please Enter Correct Option")
)
)
(if (AND (= scty "V") (= scty "v"))
(setq proceed T)
)
(if (AND (= scty "E") (= scty "e"))
(progn (setq proceed T)
(setq export 1)
)
)
)
如果我的scty是e或e
它正在返回零 我认为你对最后两个假设有问题。将“AND”替换为“OR”。因为你们不能有相同的时间“E”和“E”条件。 谢谢sepultura。。。。。。。。。。。。。。成功了:拇指支撑: 在我看来,这就足够了。
(= (strcase scty) "E")
我建议cond:
(defun proceedt ( )
(setq scty (strcase scty))
(cond
( (= "V" scty)
(setq proceed t)
)
( (= "E" scty)
(setq proceed t
export1
)
)
( (alert "Invalid option!\nPlease enter correct option."))
)
) 谢谢Tharwat&Lee Mac先生。。。。。。。。。。 为什么不阻止用户在开始时指定错误的值呢?
+1
此外,(cond)测试也足以:
(cond ((not (member scty '("E" "e" "V" "v")))
(alert "Invalid Option"))
((member scty '("V" "v"))
(setq proceed T))
((member scty '("E" "e"))
(setq proceed T))
(T
(setq export 1)))
-大卫 我也同意这一点。AutoCAD让您可以非常高效地模拟其输入样式。 我也喜欢cond和member,如果不使用getkword选项,我也会这样做:
在本例中,根据cond的返回值设置继续(alert返回nil)。
页:
[1]