break 语句在剪辑中不起作用
break statement not working in function in clips
break 语句在我的代码中不起作用。
错误:中断函数在此上下文中无效。
(deffunction slabFunction (?q0 ?q1 ?q2)
(if(and(>= ?q0 36)(>= ?q1 36)(>= ?q2 36)) then
(printout t "slab 3" crlf)
(break))
(if(and(>= ?q0 24)(>= ?q1 24)(>= ?q2 24))
then
(printout t "slab 2" crlf))
(if (and(>= ?q0 12)(>= ?q1 12)(>= ?q2 12))
then
(printout t "slab 1" crlf)
(break))
)
请帮忙!
如果应用了 slab 3,则不应应用其他条件。如果没有,则完成 slab 2 检查,如果满足则适用。然后不再进行进一步检查。等等..
您使用 break 语句来终止循环(或在某些语言中为 switch 语句)。如果您希望函数在满足条件后终止,请使用 return 语句。
CLIPS (6.31 6/12/19)
CLIPS>
(deffunction slabFunction (?q0 ?q1 ?q2)
(if (and (>= ?q0 36) (>= ?q1 36) (>= ?q2 36))
then
(printout t "slab 3" crlf)
(return))
(if (and (>= ?q0 24) (>= ?q1 24) (>= ?q2 24))
then
(printout t "slab 2" crlf)
(return))
(if (and (>= ?q0 12) (>= ?q1 12) (>= ?q2 12))
then
(printout t "slab 1" crlf)
(return)))
CLIPS> (slabFunction 40 40 40)
slab 3
CLIPS> (slabFunction 26 26 45)
slab 2
CLIPS> (slabFunction 56 13 33)
slab 1
CLIPS> (slabFunction 10 3 2)
FALSE
CLIPS>
break 语句在我的代码中不起作用。
错误:中断函数在此上下文中无效。
(deffunction slabFunction (?q0 ?q1 ?q2)
(if(and(>= ?q0 36)(>= ?q1 36)(>= ?q2 36)) then
(printout t "slab 3" crlf)
(break))
(if(and(>= ?q0 24)(>= ?q1 24)(>= ?q2 24))
then
(printout t "slab 2" crlf))
(if (and(>= ?q0 12)(>= ?q1 12)(>= ?q2 12))
then
(printout t "slab 1" crlf)
(break))
)
请帮忙! 如果应用了 slab 3,则不应应用其他条件。如果没有,则完成 slab 2 检查,如果满足则适用。然后不再进行进一步检查。等等..
您使用 break 语句来终止循环(或在某些语言中为 switch 语句)。如果您希望函数在满足条件后终止,请使用 return 语句。
CLIPS (6.31 6/12/19)
CLIPS>
(deffunction slabFunction (?q0 ?q1 ?q2)
(if (and (>= ?q0 36) (>= ?q1 36) (>= ?q2 36))
then
(printout t "slab 3" crlf)
(return))
(if (and (>= ?q0 24) (>= ?q1 24) (>= ?q2 24))
then
(printout t "slab 2" crlf)
(return))
(if (and (>= ?q0 12) (>= ?q1 12) (>= ?q2 12))
then
(printout t "slab 1" crlf)
(return)))
CLIPS> (slabFunction 40 40 40)
slab 3
CLIPS> (slabFunction 26 26 45)
slab 2
CLIPS> (slabFunction 56 13 33)
slab 1
CLIPS> (slabFunction 10 3 2)
FALSE
CLIPS>