如果netlogo中还有elseif elseif

时间:2013-12-02 14:01:47

标签: if-statement functional-programming netlogo

我想在netlogo中有一个if elseif else if else结构,但似乎目前它不起作用。

  ifelse random 100 < 68 [ set HBB-Genes "A,A" ];;68%
         [ifelse random 100 < 2  [set HBB-Genes "S,S"] ;;2%
         [ifelse random 100 < 15 [set HBB-Genes "A,A"];;15%
         [set HBB-Genes "A,A"] ;;15%


         ]]

我希望有68%的几率使用“A,A”发生HBB-Genes,下一次发生概率为2%,依此类推。如果有人有netlogo的经验,可以帮助它将非常感激。感谢。

2 个答案:

答案 0 :(得分:5)

您只想选择一个随机数,而不是几个。您可以使用let存储随机数,以便日后参考。所以:

let chance random 100
ifelse chance < 68
  [ set HBB-Genes "A,A" ]
  [ ifelse chance < 70
      [ set HBB-Genes "S,S" ]
      [ ifelse chance < 85
          ...

等等。

答案 1 :(得分:1)

可以通过if语句以下列方式完成,否则下一个if语句会有剩余的可能性发生。

if geneNumber <= 68
       [
         set HBB-Genes "A,A"
         set color blue
       ]

        if (geneNumber > 68) and (geneNumber <= 83) 
       [
         set HBB-Genes "A,S"
          set color green
       ]

       if (geneNumber > 83) and geneNumber <= 98
       [
         set HBB-Genes "S,A"
          set color green
       ]
       if geneNumber > 98
       [
         set HBB-Genes "S,S"
         set color red
       ]