简单控制流程

顺序流

通常,控制从一个语句流向下一个语句。

first;
second;
third;

禁止操作

Felix提供了几个没有任何作用的语句。单独的分号 ; 是一个什么都不做的陈述。

first;
; // does nothing
second;

标签和goto

可以通过标记代码中的位置并使用goto或conditional goto来修改默认控制流。

  var x = 1;
next:>
  println$ x;
  if x > 10 goto finished;
  x = x + 1;
  goto next;
finished:>
  println$ "Done";

标识符后跟 :> 用于标记程序中的位置。

无条件的 goto 将控制权转移到标签后面的语句。

如果条件满足,也就是说,如果条件为真,条件goto将控制权转移到标签后面的语句。

连环条件句

链式条件是一系列条件goto的语法糖。看起来像这样:

if c1 do
  stmt1a;
  stmt1b;
elif c2 do
  stmt2a;
  stmt2b;
else
  stmt3a;
  stmt3b;
done

每个组中至少需要一个语句,即no操作 ; 无事可做时可使用。后面不需要分号 done .