Control Structures
These are examples of control structures. You may also be interested in:

 Conditional structures
 Exceptions
 Flow-control structures
 Loops



Task

Document common flow-control structures.



One common example of a flow-control structure is the    goto    construct.

Note that   Conditional Structures   and   Loop Structures   have their own articles/categories.



Related tasks

   Conditional Structures
   Loop Structures 


import Goto._
import scala.util.continuations._
 
object Goto {
 
  case class Label(k: Label => Unit)
 
  private case class GotoThunk(label: Label) extends Throwable
 
  def label: Label @suspendable =
    shift((k: Label => Unit) => executeFrom(Label(k)))
 
  def goto(l: Label): Nothing =
    throw new GotoThunk(l)
 
  private def executeFrom(label: Label): Unit = {
    val nextLabel = try {
      label.k(label)
      None
    } catch {
      case g: GotoThunk => Some(g.label)
    }
    if (nextLabel.isDefined) executeFrom(nextLabel.get)
  }
 
}