If statement 如果嵌套剪辑

If statement 如果嵌套剪辑,if-statement,clips,If Statement,Clips,嵌套if片段的正确语法是什么 (defrule determina-si-tiene-gripe "" ?A <- (enfermedad (Gripe nose) (compostura)) => (if (si-o-no-p "Tiene Fiebre(si/no)? ") (if (si-o-no-p "Tiene dolores en el cuerpo(si/no)? ") if (si-o-no-p "Tiene dolor de garganta(si/no

嵌套if片段的正确语法是什么

(defrule determina-si-tiene-gripe ""
?A <- (enfermedad (Gripe nose) (compostura))
=>
(if (si-o-no-p "Tiene Fiebre(si/no)? ")
 (if (si-o-no-p "Tiene dolores en el cuerpo(si/no)? ")
     if (si-o-no-p "Tiene dolor de garganta(si/no)? ")
      then (modify ?A (Gripe si)(compostura "El paciente tiene un Resfrio"))
    else (modify ?A (Gripe no)))
 else (modify ?A (Gripe no)))
else (modify ?A (Gripe no))))

嵌套,如果else只是then或else分支中的另一个操作,如中所述:

可在then或else部分内使用任意数量的允许操作,包括另一个if…then…else结构

所以应该是这样的

(if (si-o-no-p "Tiene Fiebre(si/no)? ")
  then
  (if (si-o-no-p "Tiene dolores en el cuerpo(si/no)? ")
    then
    (if (si-o-no-p "Tiene dolor de garganta(si/no)? ")
      then
      (modify ?A (Gripe si)(compostura "El paciente tiene un Resfrio"))
      else (modify ?A (Gripe no)))
    else (modify ?A (Gripe no)))
  else (modify ?A (Gripe no))))
但是,您的示例似乎不需要嵌套的if,只需要一个if,并带有几个条件:

(if (and (si-o-no-p "Tiene Fiebre(si/no)? ")
         (si-o-no-p "Tiene dolores en el cuerpo(si/no)? ")
         (si-o-no-p "Tiene dolor de garganta(si/no)? "))
  then
  (modify ?A (Gripe si)(compostura "El paciente tiene un Resfrio"))
  else (modify ?A (Gripe no)))
似乎涉及到用户输入,但这可能会起作用