Skip to content

Control Flow

if / else

bool calculate(int32 arg1, int32 arg2) {
    int32 total = arg1 + arg2;
    if (total > 43) {
        return true;
    }
    return false;
}

while

int32 sumRange(int32 n) {
    int32 sum = 0;
    int32 i = 1;
    while (i <= n) {
        sum += i;
        i += 1;
    }
    return sum;
}

for

int32 factorial(int32 n) {
    int32 result = 1;
    for (int32 i = 1; i <= n; i += 1) {
        result *= i;
    }
    return result;
}

do-while

int32 atLeastOnce(int32 n) {
    int32 i = n;
    do { i += 1; } while (i < 0);
    return i;
}

break / continue

int32 sumSkippingEvens(int32 n) {
    int32 total = 0;
    for (int32 i = 0; i < n; i += 1) {
        if (i % 2 == 0) { continue; }
        if (i == 7) { break; }
        total += i;
    }
    return total;
}

switch / case / default

switch supports fallthrough between cases until a break is reached, just like C++.

int32 classify(int32 v) {
    int32 out = 0;
    switch (v) {
        case 1: out = 10; break;
        case 2: out = 20; break;
        default: out = 99; break;
    }
    return out;
}

Fallthrough example — cases without break accumulate into subsequent cases:

int32 fallthroughDemo(int32 v) {
    int32 out = 0;
    switch (v) {
        case 1: out += 1;
        case 2: out += 2;
        case 3: out += 3; break;
        default: out = -1;
    }
    return out;
}

Ternary

int32 maxOf(int32 a, int32 b) { return a > b ? a : b; }

Ready to see these combined into runnable examples? Continue to Example 2: Control Flow & Loops.