zzl9105 发表于 2018-5-22 19:01:02

字符串yse no循环取值,如何写才正确

本帖最后由 zzl9105 于 2018-5-22 19:03 编辑

我试过if ,while都不行,请高手指点一下(字符串变量为YON)(这些句子已在循环语句中)

                                 (IF (= YON "YSE") (setq YON "NO"))
                                 (IF (= YON "NO") (setq YON "YSE"))

                                 (while (= YON "YSE") (setq YON "NO"))
                                 (while (= YON "NO") (setq YON "YSE"))

应该用哪个基础函数呀,或者上面的写法要变一下,达到的效果为:yes no yes no yes no..........
谢谢


再用个or把上面的语句括起来么?

ghgh0130 发表于 2018-5-25 10:55:04

(cadr (assoc you '(("yes" "no")("no" "yes"))))

669423907 发表于 2018-5-22 21:39:00

(IF (= YON "NO") (setq YON "YSE") (setq YON "NO"))

lijiao 发表于 2018-5-23 09:06:08

(setq yon (cadr (member yon '("YES" "NO" "YES"))))

669423907 发表于 2018-5-23 09:31:15

你这样试试:
(defun c:13()
(IF (= YON "NO") (setq YON "YSE") (setq YON "NO"))
(alert YON)
)

zzl9105 发表于 2018-5-23 09:35:06

669423907 发表于 2018-5-23 09:31
你这样试试:
(defun c:13()
(IF (= YON "NO") (setq YON "YSE") (setq YON "NO"))


顺便问下关于子函数的问题:子函数返回值,是用alert 来返回的么,刚开始接触子函数,不知道它的返回原则,或者主、子函数的写法要求。

669423907 发表于 2018-5-23 09:40:03

直接用啊直接用啊

被承包的东子 发表于 2018-5-23 16:05:00

用COND 函数?你试试看 是不是 你要的意思

yxp 发表于 2018-5-23 19:06:05

试试看,默认是 No,也改为默认是 Yes

(defun test()
(setq n 0)
(while
        (progn
                (initget "Yes No ")
                (setq YON (getpoint "\n您是否继续循环[是(Yes)/<否(No)>]:"))
                (or YON (setq YON "No"))
                (cond
                        ((= YON "Yes")
                                (princ "\n您选择了继续...")
                                (princ (setq n (1+ n)))
                                (princ)
                                t
                        )
                        ((= YON "No")
                                (princ "\n您选择了结束.")
                                (princ)
                                nil
                        )
                        (t
                                (princ "\n当前输入不合法,请重新输入")
                                t
                        )
                )
        )
)
)

xyp1964 发表于 2018-5-23 19:14:18

(setq a (IF (= a "YES") "NO" "YES"))
页: [1]
查看完整版本: 字符串yse no循环取值,如何写才正确