if

Optionally execute an action or transition based on a given predicate.

Synopsis

if (predicate) then . . .

Description

The agent executes the given action or transition when the given predicate evaluates to \(1\) (true). The predicate is evaluated with respect to the current agent, and in this manner an if statement allows individual agents to behave differently within the same state.

Options

predicate

An expression that evaluates to true or false (\(1\) or \(0\)).

Examples

In this example state, the statements are evaluated based on the agent’s age. The final value of x will be \(11\) for agents 10 yrs old or younger, and \(21\) for all other agents.

state MyStateName {
    if (age <= 10) then x = 10
    if (age > 10) then then x = 20
    x = x + 1
    ...
}

Here are some examples with if in transition statements. These states are taken from the SCHOOL condition in the school-closure example that is discussed in the FRED Tutorials Documentation.

state Start {
    wait(0)
    if (is_group_agent(School)) then next(CheckEpidemic)
    if (is_member(School)) then next(StudentSchoolOpen)
    default(Excluded)
}

state CheckEpidemic {
    wait(0)
    if (school_closure_policy == LOCAL_CLOSURE) then next(CheckLocalEpidemic)
    if (school_closure_policy == GLOBAL_CLOSURE) then next(CheckGlobalEpidemic)
    default(CheckCalendar)
}

See Also

next(), then